Condividi tramite


Configurazione dei comportamenti client

Windows Communication Foundation (WCF) configura i comportamenti in due modi: facendo riferimento alle configurazioni dei comportamenti definite nella sezione <behavior> del file di configurazione di un'applicazione client o a livello di programmazione nell'applicazione chiamante. In questo argomento vengono illustrati entrambi gli approcci.

Quando di utilizza un file di configurazione, la configurazione del comportamento è una raccolta denominata di impostazioni di configurazione. Il nome di ogni configurazione di comportamento deve essere univoco. Questa stringa viene utilizzata nell'attributo behaviorConfiguration di una configurazione endpoint per collegare l'endpoint al comportamento.

Esempio

Nel codice di configurazione seguente viene definito un comportamento denominato myBehavior. L'endpoint client fa riferimento a questo comportamento nell'attributo 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>

Utilizzo di comportamenti a livello di programmazione

È inoltre possibile configurare o inserire comportamenti a livello di programmazione individuando la proprietà Behaviors appropriata nell'oggetto client Windows Communication Foundation (WCF) o nell'oggetto channel factory client prima dell'apertura del client.

Esempio

Nell'esempio di codice seguente viene illustrato come inserire un comportamento a livello di programmazione accedendo alla proprietà Behaviors nell'oggetto ServiceEndpoint restituito dalla proprietà Endpoint prima della creazione dell'oggetto channel.

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

Vedere anche

Altre risorse

<behaviors>