CallbackBehaviorAttribute Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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
MustUnderstandfaktiskt 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 |
| 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 |
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. |