Condividi tramite


ClientRuntime Classe

Definizione

Rappresenta il punto di inserimento per le classi che estendono la funzionalità degli oggetti client windows Communication Foundation (WCF) per 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 viene System.ServiceModel.Description.IEndpointBehavior inserito un oggetto System.ServiceModel.Dispatcher.IClientMessageInspector nel runtime client aggiungendolo alla MessageInspectors proprietà .

#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

L'esempio di codice seguente illustra un file di configurazione che carica il comportamento dell'endpoint nell'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 windows Communication Foundation (WCF) per convertire le chiamate di metodo in messaggi in uscita e convertire i messaggi in ingresso in oggetti e passarli ai risultati dei metodi client.

La ClientRuntime classe è un punto di estendibilità a cui è possibile aggiungere oggetti di estensione che intercettano i messaggi ed estendono il comportamento del client in tutte le operazioni. Gli oggetti di intercettazione possono elaborare tutti i messaggi in un determinato contratto, elaborare solo i messaggi per determinate operazioni, eseguire l'inizializzazione del canale personalizzato e implementare altri comportamenti dell'applicazione client personalizzata. 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 CallbackDispatchRuntime proprietà restituisce l'oggetto runtime dispatch per le operazioni di callback avviate dal servizio.

  • La OperationSelector proprietà accetta un oggetto selettore di operazioni personalizzato per controllare il routing dei messaggi client.

  • La ChannelInitializers proprietà abilita l'aggiunta di un inizializzatore di canale in grado di esaminare o modificare il canale client.

  • La InteractiveChannelInitializers proprietà può essere usata per visualizzare un prompt visivo per consentire a un utente di selezionare le credenziali prima di aprire il canale.

  • La Operations proprietà ottiene una raccolta di ClientOperation oggetti a cui è possibile aggiungere intercettori di messaggi personalizzati che forniscono funzionalità specifiche per i messaggi di tale operazione.

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

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

  • La MessageInspectors proprietà ottiene una raccolta di IClientMessageInspector oggetti a cui è possibile aggiungere intercettori di messaggi personalizzati per tutti i messaggi in viaggio attraverso un client.

  • La UnhandledClientOperation proprietà restituisce l'operazione a cui vengono passati messaggi imprevisti.

  • La ValidateMustUnderstand proprietà informa il sistema se deve confermare che le intestazioni SOAP contrassegnate come MustUnderstand sono state effettivamente comprese.

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

Inoltre, esistono diverse altre proprietà che recuperano le informazioni sul contratto client:

Se il client è un client duplex, le proprietà seguenti recuperano anche il tipo di callback client e il runtime:

Proprietà

Nome Descrizione
CallbackClientType

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

CallbackDispatchRuntime

Ottiene il runtime dispatch che invia le operazioni avviate dal servizio.

ChannelInitializers

Ottiene una raccolta di oggetti inizializzatore di canale utilizzati per personalizzare il canale associato a un client.

ClientMessageInspectors

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

ClientOperations

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

ContractClientType

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

ContractName

Ottiene il nome del contratto associato a un client.

ContractNamespace

Ottiene lo spazio dei nomi del contratto associato a un 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 del 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 oggetto ClientOperation.

UnhandledClientOperation

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

ValidateMustUnderstand

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

Via

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

Metodi

Nome Descrizione
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 il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a