Aracılığıyla paylaş


CallbackBehaviorAttribute Sınıf

Tanım

İstemci uygulamasında geri çağırma hizmeti uygulamasını yapılandırıyor.

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, başlatma davranışı ve işlem ayarları dışında, 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.

Uyarı

Geri çağırma işlemi uygulamaları için özniteliğini de kullanabilirsiniz OperationBehaviorAttribute . Ancak, 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:

  • Özellik, AutomaticSessionShutdown kanal kapatıldığında ve geri arama kalan iletileri işlemeyi bitirdiğinde oturumu otomatik olarak kapatır.

  • ConcurrencyMode özelliği iç iş parçacığı modelini denetler ve yeniden giriş 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 ek 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 durdurulan 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

Name Description
CallbackBehaviorAttribute()

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

Özellikler

Name Description
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ı mı, birden çok iş parçacığını mı yoksa yeniden gelen çağrıları mı desteklediğini alır veya ayarlar.

IgnoreExtensionDataObject

Bilinmeyen serileştirme verilerinin kabloya 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 hizmetle ilgili sorunları gidermek için bunu true yalnızca geliştirme sırasında olarak ayarlayın.

MaxItemsInObjectGraph

Serileştirilmiş bir 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 süreyi 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 bilgi işlemesini zorunlu kılıp zorlamadığını belirten bir değer alır veya ayarlar.

Yöntemler

Name Description
Equals(Object)

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

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

Bu örneğin karma kodunu döndürür.

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

Geçerli örneğin Type 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 Objectbasit bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
_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 kullanıma 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 uygulanması ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher) . 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