Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Metodo BeforeSendRequest
Collapse the table of content
Expand the table of content

Metodo IClientMessageInspector.BeforeSendRequest

Aggiornamento: novembre 2007

Consente di controllare o modificare un messaggio prima che venga inviato un messaggio di richiesta a un servizio.

Spazio dei nomi:  System.ServiceModel.Dispatcher
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

Object BeforeSendRequest(
	ref Message request,
	IClientChannel channel
)
Object BeforeSendRequest(
	/** @ref */Message request,
	IClientChannel channel
)
function BeforeSendRequest(
	request : Message, 
	channel : IClientChannel
) : Object

Parametri

request
Tipo: System.ServiceModel.Channels.Message%
Il messaggio da inviare al servizio.
channel
Tipo: System.ServiceModel.IClientChannel
Il canale dell'oggetto client WCF.

Valore restituito

Tipo: System.Object
L'oggetto restituito come argomento correlationState del metodo AfterReceiveReply. Risulta uguale a null se non vengono utilizzati stati di correlazione.
La procedura consigliata è di trasformarlo in una struttura System.Guid per garantire che non ci siano due oggetti correlationState uguali.

Implementare il metodo BeforeSendRequest per controllare o modificare un messaggio di richiesta prima che venga inviato.

Nell'esempio di codice seguente viene visualizzata un'implementazione che scrive stringhe sulla console quando viene chiamata.

#region IClientMessageInspector Members
public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
  Console.WriteLine("IClientMessageInspector.AfterReceiveReply called.");
  Console.WriteLine("Message: {0}", reply.ToString());
}

public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, IClientChannel channel)
{
  Console.WriteLine("IClientMessageInspector.BeforeSendRequest called.");
  return null;
}


Nell'esempio di codice seguente viene illustrato come utilizzare un System.ServiceModel.Description.IEndpointBehavior per inserire il controllo di messaggio del client nell'endpoint client.

#region IEndpointBehavior Members
public void AddBindingParameters(
  ServiceEndpoint endpoint, BindingParameterCollection bindingParameters
) { return; }

public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
  clientRuntime.MessageInspectors.Add(new Inspector());
  foreach (ClientOperation op in clientRuntime.Operations)
    op.ParameterInspectors.Add(new Inspector());
}

public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
{
  endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new Inspector());
  foreach (DispatchOperation op in endpointDispatcher.DispatchRuntime.Operations)
    op.ParameterInspectors.Add(new Inspector());
}

public void Validate(ServiceEndpoint endpoint){ return; }


Nell'esempio di codice seguente viene infine mostrata la procedura per modificare il file di configurazione del client in modo da utilizzare il comportamento dell'endpoint tramite un determinato endpoint.

  <client>
      <endpoint 
        address="http://localhost:8080/SampleService" 
        behaviorConfiguration="clientInspectorsAdded" 
        binding="wsHttpBinding"
        bindingConfiguration="WSHttpBinding_ISampleService" 
        contract="ISampleService"
        name="WSHttpBinding_ISampleService"
      >
      </endpoint>
  </client>
<behaviors>
  <endpointBehaviors>
    <behavior name="clientInspectorsAdded">
      <clientInterceptors />
    </behavior>
  </endpointBehaviors>
</behaviors>
<extensions>
  <behaviorExtensions>
    <add 
      name="clientInterceptors" 
      type="Microsoft.WCF.Documentation.InspectorInserter, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
  />
  </behaviorExtensions>
</extensions>


Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft