CallbackBehaviorAttribute Sınıf

Tanım

İstemci uygulamasında bir geri çağırma hizmeti uygulaması yapılandırılır.

public ref class CallbackBehaviorAttribute sealed : Attribute, System::ServiceModel::Description::IEndpointBehavior
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class CallbackBehaviorAttribute : Attribute, System.ServiceModel.Description.IEndpointBehavior
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type CallbackBehaviorAttribute = class
    inherit Attribute
    interface IEndpointBehavior
Public NotInheritable Class CallbackBehaviorAttribute
Inherits Attribute
Implements IEndpointBehavior
Devralma
CallbackBehaviorAttribute
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği, hangi iş parçacığının SynchronizationContext sıralandığını belirlemek için nesnesini kullanan bir geri çağırma nesnesini, ValidateMustUnderstand ileti doğrulamayı zorunlu kılma özelliğini ve IncludeExceptionDetailInFaults hata ayıklama amacıyla özel durumları hizmete nesne olarak FaultException döndürme özelliğini gösterirCallbackBehaviorAttribute.

using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Threading;

namespace Microsoft.WCF.Documentation
{
  [CallbackBehaviorAttribute(
   IncludeExceptionDetailInFaults= true,
    UseSynchronizationContext=true,
    ValidateMustUnderstand=true
  )]
  public class Client : SampleDuplexHelloCallback
  {
    AutoResetEvent waitHandle;

    public Client()
    {
      waitHandle = new AutoResetEvent(false);
    }

    public void Run()
    {
      // Picks up configuration from the configuration file.
      SampleDuplexHelloClient wcfClient
        = new SampleDuplexHelloClient(new InstanceContext(this), "WSDualHttpBinding_SampleDuplexHello");
      try
      {
        Console.ForegroundColor = ConsoleColor.White;
        Console.WriteLine("Enter a greeting to send and press ENTER: ");
        Console.Write(">>> ");
        Console.ForegroundColor = ConsoleColor.Green;
        string greeting = Console.ReadLine();
        Console.ForegroundColor = ConsoleColor.White;
        Console.WriteLine("Called service with: \r\n\t" + greeting);
        wcfClient.Hello(greeting);
        Console.WriteLine("Execution passes service call and moves to the WaitHandle.");
        this.waitHandle.WaitOne();
        Console.ForegroundColor = ConsoleColor.Blue;
        Console.WriteLine("Set was called.");
        Console.Write("Press ");
        Console.ForegroundColor = ConsoleColor.Red;
        Console.Write("ENTER");
        Console.ForegroundColor = ConsoleColor.Blue;
        Console.Write(" to exit...");
        Console.ReadLine();
      }
      catch (TimeoutException timeProblem)
      {
        Console.WriteLine("The service operation timed out. " + timeProblem.Message);
        Console.ReadLine();
      }
      catch (CommunicationException commProblem)
      {
        Console.WriteLine("There was a communication problem. " + commProblem.Message);
        Console.ReadLine();
      }
    }
    public static void Main()
    {
      Client client = new Client();
      client.Run();
    }

    public void Reply(string response)
    {
      Console.WriteLine("Received output.");
      Console.WriteLine("\r\n\t" + response);
      this.waitHandle.Set();
    }
  }
}

Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.Threading

Namespace Microsoft.WCF.Documentation
  <CallbackBehaviorAttribute(IncludeExceptionDetailInFaults:= True, UseSynchronizationContext:=True, ValidateMustUnderstand:=True)> _
  Public Class Client
      Implements SampleDuplexHelloCallback
    Private waitHandle As AutoResetEvent

    Public Sub New()
      waitHandle = New AutoResetEvent(False)
    End Sub

    Public Sub Run()
      ' Picks up configuration from the configuration file.
      Dim wcfClient As New SampleDuplexHelloClient(New InstanceContext(Me), "WSDualHttpBinding_SampleDuplexHello")
      Try
        Console.ForegroundColor = ConsoleColor.White
        Console.WriteLine("Enter a greeting to send and press ENTER: ")
        Console.Write(">>> ")
        Console.ForegroundColor = ConsoleColor.Green
        Dim greeting As String = Console.ReadLine()
        Console.ForegroundColor = ConsoleColor.White
        Console.WriteLine("Called service with: " & Constants.vbCrLf & Constants.vbTab & greeting)
        wcfClient.Hello(greeting)
        Console.WriteLine("Execution passes service call and moves to the WaitHandle.")
        Me.waitHandle.WaitOne()
        Console.ForegroundColor = ConsoleColor.Blue
        Console.WriteLine("Set was called.")
        Console.Write("Press ")
        Console.ForegroundColor = ConsoleColor.Red
        Console.Write("ENTER")
        Console.ForegroundColor = ConsoleColor.Blue
        Console.Write(" to exit...")
        Console.ReadLine()
      Catch timeProblem As TimeoutException
        Console.WriteLine("The service operation timed out. " & timeProblem.Message)
        Console.ReadLine()
      Catch commProblem As CommunicationException
        Console.WriteLine("There was a communication problem. " & commProblem.Message)
        Console.ReadLine()
      End Try
    End Sub
    Public Shared Sub Main()
      Dim client As New Client()
      client.Run()
    End Sub

    Public Sub Reply(ByVal response As String) Implements SampleDuplexHelloCallback.Reply
      Console.WriteLine("Received output.")
      Console.WriteLine(Constants.vbCrLf & Constants.vbTab & response)
      Me.waitHandle.Set()
    End Sub
  End Class
End Namespace

Açıklamalar

CallbackBehaviorAttribute İstemci uygulamasında geri çağırma sözleşmesi uygulamasının yürütme davranışını yapılandırmak veya genişletmek için özniteliğini kullanın. Bu öznitelik, davranış ve işlem ayarları hariç, geri çağırma sınıfı ServiceBehaviorAttribute için özniteliğiyle aynı işlevi gerçekleştirir.

geri CallbackBehaviorAttribute çağırma sözleşmesini uygulayan sınıfa uygulanmalıdır. Çift yönlü olmayan bir sözleşme uygulamasına uygulanırsa, çalışma zamanında bir InvalidOperationException özel durum oluşturulur.

Not

Geri çağırma işlemi uygulamaları için özniteliğini OperationBehaviorAttribute de kullanabilirsiniz. Ancak, bir geri çağırma işleminde kullanılıyorsa OperationBehaviorAttribute , ReleaseInstanceMode özelliğin olması None gerekir veya çalışma zamanında bir InvalidOperationException özel durum oluşturulur.

Aşağıdaki özellikler kullanılabilir:

  • Kanal AutomaticSessionShutdown kapatıldığında ve geri arama kalan iletileri işlemeyi bitirdiğinde özelliği oturumu otomatik olarak kapatır.

  • ConcurrencyMode özelliği iç iş parçacığı modelini denetler ve yeniden girilen veya çok iş parçacıklı geri çağırma nesneleri için destek sağlar.

  • özelliği, IgnoreExtensionDataObject çalışma zamanının iletiyi işlemek için gerekli olmayan fazla serileştirme bilgilerini yoksayması sağlar.

  • özelliği, IncludeExceptionDetailInFaults bir hizmetteki işlenmeyen özel durumların hata ayıklama amacıyla hizmete SOAP hataları olarak döndürülip döndürülmeyeceğini belirtir.

  • Özellik MaxItemsInObjectGraph , bir nesne grafında seri hale getirilmiş öğe sayısını sınırlar.

  • özelliği, TransactionIsolationLevel sözleşmenin desteklediği işlem yalıtım düzeyini belirtir.

  • TransactionTimeout özelliği, bir işlemin tamamlanması gereken veya durdurulması gereken süreyi belirtir.

  • özelliği, UseSynchronizationContext geçerli SynchronizationContext nesneyi kullanarak gelen yöntem çağrılarının otomatik olarak eşitlenip eşitlenmeyeceğini gösterir.

  • ValidateMustUnderstand özelliği, aslında olarak işaretlenmiş MustUnderstand SOAP üst bilgilerinin anlaşıldığını onaylaması gerekip gerekmediğini sisteme bildirir.

Oluşturucular

CallbackBehaviorAttribute()

CallbackBehaviorAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

AutomaticSessionShutdown

Bir hizmet çift yönlü oturumu kapattığında oturumun otomatik olarak kapatılıp kapatılmayacağını belirtir.

ConcurrencyMode

Bir hizmetin bir iş parçacığını, birden çok iş parçacığını veya yeniden giriş çağrılarını destekleyip desteklemediğini alır veya ayarlar.

IgnoreExtensionDataObject

Kabloya bilinmeyen serileştirme verilerinin gönderilip gönderilmeymeyeceğini belirten bir değer alır veya ayarlar.

IncludeExceptionDetailInFaults

Genel işlenmeyen yürütme özel durumlarının bir türe String dönüştürülmesini ve hata iletisi olarak gönderilmesini belirten bir FaultException<TDetail> değer alır veya ayarlar. Bir hizmette sorun gidermek için true bunu yalnızca geliştirme sırasında olarak ayarlayın.

MaxItemsInObjectGraph

Serileştirilmiş nesnede izin verilen en fazla öğe sayısını alır veya ayarlar.

TransactionIsolationLevel

İşlem yalıtım düzeyini belirtir.

TransactionTimeout

İşlemin tamamlanması gereken dönemi alır veya ayarlar.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)
UseSynchronizationContext

Yürütme iş parçacığını seçmek için geçerli eşitleme bağlamının kullanılıp kullanılmayacağını belirten bir değer alır veya ayarlar.

ValidateMustUnderstand

Sistemin veya uygulamanın SOAP MustUnderstand üst bilgisi işlemeyi zorunlu kılıp zorlamadığını belirten bir değer alır veya ayarlar.

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)
IEndpointBehavior.AddBindingParameters(ServiceEndpoint, BindingParameterCollection)

Bağlama öğelerini geri çağırma davranışını destekleyecek şekilde yapılandırılır.

IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint, ClientRuntime)

İstemci çalışma zamanını geri çağırma nesnesini destekleyecek şekilde yapılandırılır.

IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher)

yönteminin ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher) uygulanması. Bu uygulamanın hiçbir etkisi yoktur.

IEndpointBehavior.Validate(ServiceEndpoint)

Çalışma zamanını oluşturmadan önce uç nokta açıklamasını doğrular.

Şunlara uygulanır