ClientRuntime Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 |
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) |