ClientRuntime Classe

Définition

Représente le point d’insertion pour les classes qui étendent les fonctionnalités des objets clients Windows Communication Foundation (WCF) pour tous les messages gérés par une application cliente.

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
Héritage
ClientRuntime
Héritage

Exemples

Dans l'exemple de code suivant, un System.ServiceModel.Description.IEndpointBehavior insère un System.ServiceModel.Dispatcher.IClientMessageInspector dans l'exécution du client en l'ajoutant à la propriété 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

L'exemple de code suivant présente un fichier de configuration qui charge le comportement de point de terminaison dans le point de terminaison 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>

Remarques

Les objets clients WCF, qu’il s’agisse d’une extension ou ClientBase<TChannel> d’une IClientChannelextension, sont utilisés par Windows applications clientes Communication Foundation (WCF) pour convertir les appels de méthode en messages sortants et convertir les messages entrants en objets et les transmettre aux résultats des méthodes clientes.

La classe ClientRuntime est un point d'extensibilité auquel vous pouvez ajouter des objets d'extension qui interceptent des messages et étendent le comportement du client à l'ensemble des opérations. Les objets d'interception peuvent traiter tous les messages d'un contrat spécifique, traiter uniquement les messages de certaines opérations, exécuter l'initialisation de canal personnalisée et implémenter un autre comportement d'application cliente personnalisé. Pour obtenir une vue d’ensemble de l’architecture cliente, consultez Architecture du client WCF. Pour plus d’informations sur la programmation cliente, consultez Accès aux services à l’aide d’un client WCF. Pour plus d’informations sur les personnalisations et leur exécution, consultez Extension des clients.

  • La propriété CallbackDispatchRuntime retourne l'objet d'exécution de répartition pour les opérations de rappel initiées par le service.

  • La propriété OperationSelector accepte un objet de sélecteur d'opération personnalisé pour contrôler le routage des messages client.

  • La propriété ChannelInitializers permet d'ajouter un initialiseur de canal qui peut inspecter ou modifier le canal client.

  • La propriété InteractiveChannelInitializers peut être utilisée pour afficher une invite visuelle afin de permettre à un utilisateur de sélectionner les informations d'identification avant d'ouvrir le canal.

  • La propriété Operations obtient une collection d’objets ClientOperation auxquels vous pouvez ajouter des intercepteurs de messages personnalisés qui fournissent les fonctionnalités spécifiques aux messages de cette opération.

  • La propriété ManualAddressing permet à une application de désactiver certains en-têtes d'adressage automatique afin de contrôler directement l'adressage.

  • La propriété MaxFaultSize permet au client de limiter la taille des messages d'erreur que le client accepte.

  • La propriété MessageInspectors obtient une collection d’objets IClientMessageInspector auxquels vous pouvez ajouter des intercepteurs de messages personnalisés pour tous les messages transmis via un client.

  • La propriété UnhandledClientOperation retourne l'opération à laquelle les messages inattendus sont passés.

  • La propriété ValidateMustUnderstand informe le système s'il doit confirmer que les en-têtes SOAP marqués comme MustUnderstand ont effectivement été compris.

  • La propriété Via affecte la valeur de la destination du message au niveau du transport afin de prendre en charge les intermédiaires et d'autres scénarios.

De plus, il existe de nombreuses autres propriétés qui récupèrent les informations de contrat de client :

Si le client est client duplex, les propriétés suivantes récupèrent également le type de rappel et l'exécution du client :

Propriétés

CallbackClientType

Obtient ou définit le type du contrat de rappel associé à un client duplex.

CallbackDispatchRuntime

Obtient le temps d'exécution de répartition qui distribue des opérations initiées par le service.

ChannelInitializers

Obtient une collection d’objets d’initialiseur de canal utilisée pour personnaliser le canal associé un client.

ClientMessageInspectors

Obtient une collection d'objets d'inspecteur de message utilisés pour afficher ou modifier les messages d'une opération de service particulière.

ClientOperations

Obtient une collection d'objets d'opération du client utilisés pour attacher des objets extension qui inspectent ou modifient des messages et un comportement limités à une opération particulière.

ContractClientType

Obtient ou définit le type de contrat associé à un client.

ContractName

Obtient le nom du contrat associé à un client.

ContractNamespace

Obtient l'espace de noms du contrat associé à un client.

InteractiveChannelInitializers

Obtient une collection d'un initialiseur de canal interactif.

ManualAddressing

Obtient ou définit une valeur qui indique si le client ajoute des en-têtes d'adressage aux messages de demande/réponse.

MaxFaultSize

Obtient ou définit la taille d'erreur maximale.

MessageInspectors

Obtient une collection d’implémentations d’inspecteur de message pour un client.

MessageVersionNoneFaultsEnabled

Obtient ou définit une valeur qui indique si la propriété MessageVersionNoneFaultsEnabled est définie.

Operations

Obtient une collection d'opérations du client pour un client.

OperationSelector

Obtient ou définit une implémentation de IClientOperationSelector qui peut être utilisée pour sélectionner une ClientOperation.

UnhandledClientOperation

Obtient l'opération du client pour les méthodes qui n'ont pas de ClientOperation correspondant dans la collection Operations.

ValidateMustUnderstand

Obtient ou définit une valeur qui spécifie si le système ou l'application applique le traitement d'en-tête MustUnderstand SOAP.

Via

Obtient ou définit l'adresse de transport utilisée pour envoyer des messages via le client.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à