Condividi tramite


ClientRuntime Classe

Definizione

Rappresenta il punto di inserimento per le classi che estendono la funzionalità degli oggetti client di Windows Communication Foundation (WCF) a tutti i messaggi gestiti da un'applicazione client.

public ref class ClientRuntime sealed
public ref class ClientRuntime sealed : System::ServiceModel::Dispatcher::ClientRuntimeCompatBase
public sealed class ClientRuntime
public sealed class ClientRuntime : System.ServiceModel.Dispatcher.ClientRuntimeCompatBase
type ClientRuntime = class
type ClientRuntime = class
    inherit ClientRuntimeCompatBase
Public NotInheritable Class ClientRuntime
Public NotInheritable Class ClientRuntime
Inherits ClientRuntimeCompatBase
Ereditarietà
ClientRuntime
Ereditarietà

Esempio

Nell'esempio di codice seguente un'interfaccia System.ServiceModel.Description.IEndpointBehavior inserisce un'interfaccia System.ServiceModel.Dispatcher.IClientMessageInspector nella fase di esecuzione del client aggiungendola alla proprietà MessageInspectors.

#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; }
#Region "IEndpointBehavior Members"
    Public Sub AddBindingParameters(ByVal endpoint As ServiceEndpoint, ByVal bindingParameters _
                                    As BindingParameterCollection) Implements IEndpointBehavior.AddBindingParameters
        Return
    End Sub

    Public Sub ApplyClientBehavior(ByVal endpoint As ServiceEndpoint, ByVal clientRuntime As ClientRuntime) _
    Implements IEndpointBehavior.ApplyClientBehavior
        clientRuntime.MessageInspectors.Add(New Inspector())
        For Each op As ClientOperation In clientRuntime.Operations
            op.ParameterInspectors.Add(New Inspector())
        Next op
    End Sub

    Public Sub ApplyDispatchBehavior(ByVal endpoint As ServiceEndpoint, ByVal endpointDispatcher As  _
                                     EndpointDispatcher) Implements IEndpointBehavior.ApplyDispatchBehavior
        endpointDispatcher.DispatchRuntime.MessageInspectors.Add(New Inspector())
        For Each op As DispatchOperation In endpointDispatcher.DispatchRuntime.Operations
            op.ParameterInspectors.Add(New Inspector())
        Next op
    End Sub

Public Sub Validate(ByVal endpoint As ServiceEndpoint) Implements IEndpointBehavior.Validate
    Return
End Sub

Nell'esempio di codice seguente viene mostrato un file di configurazione che carica il comportamento dell'endpoint sull'endpoint client.

  <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>

Commenti

Gli oggetti client WCF, che si tratti di un'estensione di ClientBase<TChannel> o di IClientChannel, vengono usati dalle applicazioni client di Windows Communication Foundation (WCF) per convertire le chiamate al metodo in messaggi in uscita e convertire i messaggi in ingresso in oggetti e passarli ai risultati dei metodi client.

La classe ClientRuntime è un punto di estendibilità al quale è possibile aggiungere oggetti di estensione che intercettano messaggi ed estendono il comportamento del client a tutte le operazioni. Gli oggetti di intercettamento possono elaborare tutti i messaggi di un contratto specifico, elaborare solo i messaggi di operazioni particolari, eseguire l'inizializzazione di un canale personalizzata e implementare altri comportamenti dell'applicazione client personalizzati. Per una panoramica dell'architettura client, vedere Architettura client WCF. Per altre informazioni sulla programmazione client, vedere Accesso ai servizi tramite un client WCF. Per informazioni dettagliate sulle personalizzazioni e su come eseguirle, vedere Estensione dei client.

  • La proprietà CallbackDispatchRuntime restituisce l'oggetto runtime della distribuzione per le operazioni di callback avviate dal servizio.

  • La proprietà OperationSelector accetta un oggetto selettore dell'operazione personalizzato per controllare il routing dei messaggi client.

  • La proprietà ChannelInitializers consente di aggiungere un inizializzatore del canale che può controllare o modificare il canale client.

  • La proprietà InteractiveChannelInitializers può essere utilizzata per visualizzare un prompt che consente all'utente di selezionare le credenziali prima di aprire il canale.

  • La proprietà Operations ottiene una raccolta di oggetti ClientOperation alla quale è possibile aggiungere intercettatori di messaggi personalizzati che forniscono la funzionalità specifica ai messaggi di quell'operazione.

  • La proprietà ManualAddressing consente a un'applicazione di disattivare alcune intestazioni di indirizzamento automatico per controllare direttamente l'indirizzamento.

  • La proprietà MaxFaultSize consente al client di limitare la dimensione dei messaggi di errore accettati dal client.

  • La proprietà MessageInspectors ottiene una raccolta di oggetti IClientMessageInspector alla quale è possibile aggiungere intercettatori di messaggi personalizzati per tutti i messaggi che passano per un client.

  • La proprietà UnhandledClientOperation restituisce l'operazione alla quale vengono passati messaggi imprevisti.

  • La proprietà ValidateMustUnderstand indica al sistema se è necessario verificare che le intestazioni SOAP contrassegnate con MustUnderstand, siano state in effetti riconosciute.

  • La proprietà Via imposta il valore della destinazione del messaggio a livello di trasporto per supportare gli intermediari e altri scenari.

Esistono inoltre altre proprietà che recuperano le informazioni del contratto client:

Se il client è un client duplex, nelle proprietà seguenti vengono inoltre recuperati il tipo di callback e la fase di esecuzione del client:

Proprietà

CallbackClientType

Ottiene o imposta il tipo del contratto di callback associato a un client duplex.

CallbackDispatchRuntime

Ottiene la fase di esecuzione della distribuzione che distribuisce operazioni avviate dal servizio.

ChannelInitializers

Ottiene una raccolta di oggetti dell'inizializzatore del canale utilizzato per personalizzare il canale associato a un client.

ClientMessageInspectors

Ottiene una raccolta di oggetti controllo messaggio utilizzati per visualizzare o modificare i messaggi di una particolare operazione del servizio.

ClientOperations

Ottiene una raccolta di oggetti operazione client utilizzati per collegare oggetti di estensione che controllano o modificano i messaggi e il comportamento di una particolare operazione del servizio.

ContractClientType

Ottiene o imposta il tipo di contratto associato al client.

ContractName

Ottiene il nome del contratto associato al client.

ContractNamespace

Ottiene lo spazio dei nomi del contratto associato al client.

InteractiveChannelInitializers

Ottiene una raccolta di un inizializzatore di canale interattivo.

ManualAddressing

Ottiene o imposta un valore che indica se il client aggiunge intestazioni di indirizzamento ai messaggi request-reply.

MaxFaultSize

Ottiene o imposta la dimensione massima dell'errore.

MessageInspectors

Ottiene una raccolta di implementazioni di controllo messaggi per un client.

MessageVersionNoneFaultsEnabled

Ottiene o imposta un valore che indica se la proprietà MessageVersionNoneFaultsEnabled è impostata.

Operations

Ottiene una raccolta di operazioni client per un client.

OperationSelector

Ottiene o imposta un'implementazione IClientOperationSelector che può essere utilizzata per selezionare un elemento ClientOperation.

UnhandledClientOperation

Ottiene l'operazione client per i metodi che non dispongono di un oggetto ClientOperation corrispondente nella raccolta Operations.

ValidateMustUnderstand

Ottiene o imposta un valore che specifica se il sistema o l'applicazione applica l'elaborazione dell'intestazione MustUnderstand SOAP.

Via

Ottiene o imposta l'indirizzo di trasporto utilizzato per inviare messaggi utilizzando il client.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a