Konfigurieren von Clientverhalten
Windows Communication Foundation (WCF) konfiguriert Verhaltensweisen auf zwei Arten: entweder durch Verweisen auf Verhaltenskonfigurationen – definiert im <behavior>-Abschnitt der Konfigurationsdatei einer Clientanwendung – oder programmgesteuert in der aufrufenden Anwendung. In diesem Abschnitt werden beide Ansätze beschrieben.
Bei Verwendung einer Konfigurationsdatei ist die Verhaltenskonfiguration eine benannte Auflistung von Konfigurationseinstellungen. Der Name jeder Verhaltenskonfiguration muss eindeutig sein. Diese Zeichenfolge wird im behaviorConfiguration-Attribut einer Endpunktkonfiguration zum Verknüpfen des Endpunkts mit dem Verhalten verwendet.
Beispiel
Der folgende Konfigurationscode definiert ein Verhalten mit der Bezeichnung myBehavior
. Der Clientendpunkt verweist im behaviorConfiguration
-Attribut auf dieses Verhalten.
<configuration>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="myBehavior">
<clientVia />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="myBinding" maxReceivedMessageSize="10000" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="myAddress" binding="basicHttpBinding" bindingConfiguration="myBinding" behaviorConfiguration="myBehavior" contract="myContract" />
</client>
</system.serviceModel>
</configuration>
Programmgesteuertes Verwenden von Verhaltensweisen
Verhaltensweisen können auch programmgesteuert konfiguriert oder eingefügt werden. Suchen Sie hierzu vor dem Öffnen des Clients im Windows Communication Foundation (WCF)-Clientobjekt oder im Clientkanalfactory-Objekt nach der entsprechenden Behaviors-Eigenschaft.
Beispiel
Im folgenden Codebeispiel wird das programmgesteuerte Einfügen eines Verhaltens durch Zugreifen auf die Behaviors-Eigenschaft auf dem ServiceEndpoint veranschaulicht, der vor der Erstellung des Kanalobjekts von der Endpoint-Eigenschaft zurückgegeben wurde:
Public Class Client
Public Shared Sub Main()
Try
' Picks up configuration from the config file.
Dim factory As New ChannelFactory(Of ISampleServiceChannel)("WSHttpBinding_ISampleService")
' Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(New EndpointBehaviorMessageInspector())
Dim wcfClientChannel As ISampleServiceChannel = factory.CreateChannel()
' Making calls.
Console.WriteLine("Enter the greeting to send: ")
Dim greeting As String = Console.ReadLine()
Console.WriteLine("The service responded: " & wcfClientChannel.SampleMethod(greeting))
Console.WriteLine("Press ENTER to exit:")
Console.ReadLine()
' Done with service.
wcfClientChannel.Close()
Console.WriteLine("Done!")
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.Read()
Catch fault As FaultException(Of SampleFault)
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage)
Console.Read()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message)
Console.Read()
End Try
End Sub