Configuration des comportements clients
Windows Communication Foundation (WCF) configure les comportements de deux manières : en faisant référence aux configurations de comportement, qui sont définies dans la section <behavior> du fichier de configuration d'une application cliente, ou par programme dans l'application appelante. Cette rubrique décrit ces deux approches.
Lors de l'utilisation d'un fichier de configuration, la configuration du comportement est une collection nommée de paramètres de configuration. Le nom de chaque configuration de comportement doit être unique. Cette chaîne est utilisée dans l'attribut behaviorConfiguration d'une configuration de point de terminaison pour lier le point de terminaison au comportement.
Exemple
Le code de configuration suivant définit un comportement appelé myBehavior
. Le point de terminaison de client référence ce comportement dans l'attribut behaviorConfiguration
.
<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>
Utilisation de comportements par programme
Vous pouvez également configurer ou insérer par programme des comportements en localisant la propriété Behaviors appropriée sur l'objet client Windows Communication Foundation (WCF) ou l'objet de fabrication de canaux client avant d'ouvrir le client.
Exemple
L'exemple de code suivant indique comment insérer par programme un comportement en accédant à la propriété Behaviors sur ServiceEndpoint retournée à partir de la propriété Endpoint avant la création de l'objet de canal.
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