CallbackBehaviorAttribute Klass

Definition

Konfigurerar en implementering av återanropstjänsten i ett klientprogram.

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
Arv
CallbackBehaviorAttribute
Attribut
Implementeringar

Exempel

I följande kodexempel visas ett CallbackBehaviorAttribute på ett motringningsobjekt som använder SynchronizationContext objektet för att avgöra vilken tråd som ska konverteras till, ValidateMustUnderstand egenskapen för att framtvinga meddelandeverifiering och IncludeExceptionDetailInFaults egenskapen för att returnera undantag som FaultException objekt till tjänsten i felsökningssyfte.

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

Kommentarer

CallbackBehaviorAttribute Använd attributet för att konfigurera eller utöka körningsbeteendet för en implementering av återanropskontrakt i ett klientprogram. Det här attributet utför samma funktion för motringningsklassen ServiceBehaviorAttribute som attributet med undantag för beteende för instancing och transaktionsinställningar.

CallbackBehaviorAttribute Måste tillämpas på den klass som implementerar återanropskontraktet. Om det tillämpas på en icke-duplex-kontraktimplementering utlöses ett InvalidOperationException undantag vid körning.

Note

Du kan också använda OperationBehaviorAttribute attributet för implementeringar av återanropsåtgärden. Men om OperationBehaviorAttribute används vid en återanropsåtgärd ReleaseInstanceMode måste egenskapen vara None eller ett InvalidOperationException undantag genereras vid körning.

Följande egenskaper är tillgängliga:

  • Egenskapen AutomaticSessionShutdown stänger automatiskt sessionen när kanalen stängs och återanropet har slutfört bearbetningen av eventuella återstående meddelanden.

  • Egenskapen ConcurrencyMode styr den interna trådningsmodellen, vilket aktiverar stöd för återaktiveringsobjekt eller flertrådade motringningsobjekt.

  • Egenskapen IgnoreExtensionDataObject gör att körningen kan ignorera extra serialiseringsinformation som inte krävs för att bearbeta meddelandet.

  • Egenskapen IncludeExceptionDetailInFaults anger om ohanterade undantag i en tjänst returneras till tjänsten som SOAP-fel i felsökningssyfte.

  • Egenskapen MaxItemsInObjectGraph begränsar antalet objekt i ett objektdiagram som serialiseras.

  • Egenskapen TransactionIsolationLevel anger den transaktionsisoleringsnivå som kontraktet stöder.

  • Egenskapen TransactionTimeout anger den tidsperiod inom vilken en transaktion måste slutföras eller så avbryts den.

  • Egenskapen UseSynchronizationContext anger om inkommande metodanrop ska synkroniseras automatiskt med det aktuella SynchronizationContext objektet.

  • Egenskapen ValidateMustUnderstand informerar systemet om det ska bekräfta att SOAP-huvuden som har markerats som MustUnderstand faktiskt har förståtts.

Konstruktorer

Name Description
CallbackBehaviorAttribute()

Initierar en ny instans av CallbackBehaviorAttribute klassen.

Egenskaper

Name Description
AutomaticSessionShutdown

Anger om en session ska stängas automatiskt när en tjänst stänger en duplex-session.

ConcurrencyMode

Hämtar eller anger om en tjänst stöder en tråd, flera trådar eller återaktiveringsanrop.

IgnoreExtensionDataObject

Hämtar eller anger ett värde som anger om okända serialiseringsdata ska skickas till tråden.

IncludeExceptionDetailInFaults

Hämtar eller anger ett värde som anger att allmänna ohanterade körningsfel ska konverteras till en FaultException<TDetail> typ String och skickas som ett felmeddelande. Ange detta till true endast under utveckling för att felsöka en tjänst.

MaxItemsInObjectGraph

Hämtar eller anger det maximala antalet objekt som tillåts i ett serialiserat objekt.

TransactionIsolationLevel

Anger transaktionsisoleringsnivån.

TransactionTimeout

Hämtar eller anger den period inom vilken en transaktion måste slutföras.

TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)
UseSynchronizationContext

Hämtar eller anger ett värde som anger om du vill använda den aktuella synkroniseringskontexten för att välja körningstråden.

ValidateMustUnderstand

Hämtar eller anger ett värde som anger om systemet eller programmet framtvingar SOAP-sidhuvudbearbetning MustUnderstand .

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

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

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)
IEndpointBehavior.AddBindingParameters(ServiceEndpoint, BindingParameterCollection)

Konfigurerar bindningselementen för att stödja återanropsbeteendet.

IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint, ClientRuntime)

Konfigurerar klientkörningen för att stödja motringningsobjektet.

IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher)

Implementering av ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher) metoden. Den här implementeringen har ingen effekt.

IEndpointBehavior.Validate(ServiceEndpoint)

Validerar slutpunktsbeskrivningen innan körningen skapas.

Gäller för