Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

IEndpointBehavior, interface

Implémente des méthodes qui permettent d'étendre un comportement d'exécution pour un point de terminaison, que ce soit pour une application cliente ou de service.

Espace de noms :  System.ServiceModel.Description
Assembly :  System.ServiceModel (dans System.ServiceModel.dll)
public interface IEndpointBehavior

Le type IEndpointBehavior expose les membres suivants.

  NomDescription
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreAddBindingParametersEffectuez une implémentation pour passer des données au moment de l'exécution à des liaisons afin de prendre en charge un comportement personnalisé.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreApplyClientBehaviorImplémente une modification ou une extension du client sur l'intégralité d'un point de terminaison.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreApplyDispatchBehaviorImplémente une modification ou une extension du service sur l'intégralité du point de terminaison.
Méthode publiquePris en charge dans .NET pour les applications du Windows StoreValidateEffectuez une implémentation pour confirmer que le point de terminaison répond à certains critères prévus.
Début

Implémentez l'interface IEndpointBehavior pour modifier, examiner ou étendre certains aspects de l'exécution à l'échelle du point de terminaison au niveau de l'application, que ce soit pour des applications clientes ou de service.

  • Utilisez la méthode AddBindingParameters pour passer des données personnalisées lors de l'exécution pour permettre aux liaisons de prendre en charge un comportement personnalisé.

  • Utilisez la méthode ApplyClientBehavior pour modifier, examiner ou insérer des extensions à un point de terminaison d'une application cliente.

  • Utilisez la méthode ApplyDispatchBehavior pour modifier, examiner ou insérer des extensions à l'exécution à l'échelle du point de terminaison d'une application de service.

  • Utilisez la méthode Validate pour confirmer qu'un ServiceEndpoint remplit les conditions requises. Elle permet d'assurer qu'un point de terminaison dispose d'un certain paramètre de configuration activé, qu'il prend en charge une fonctionnalité particulière et d'autres spécifications.

Les objets IEndpointBehavior peuvent utiliser chacune de ces méthodes mais souvent, seule l'une d'elles est importante. Dans ce cas, les méthodes inutilisées ne retournent aucun élément, n'effectuant ainsi aucune action.

RemarqueRemarque

Toutes les méthodes IEndpointBehavior passent un objet ServiceEndpoint comme paramètre. Ce paramètre est présenté à titre d'examen uniquement ; si vous modifiez l'objet ServiceEndpoint, le comportement d'exécution n'est pas défini.

En général, les objets IEndpointBehavior permettent d'accéder aux différentes propriétés des objets System.ServiceModel.Dispatcher.DispatchRuntime, System.ServiceModel.Dispatcher.DispatchOperation, System.ServiceModel.Dispatcher.EndpointDispatcher et System.ServiceModel.Dispatcher.ChannelDispatcher d'une application de service et à l'System.ServiceModel.Dispatcher.ClientRuntime et à l'System.ServiceModel.Dispatcher.ClientOperation d'une application cliente. De plus, vous pouvez accéder aux propriétés de clients et services duplex, respectivement à l'aide des propriétés ClientRuntime.CallbackDispatchRuntime et DispatchRuntime.CallbackClientRuntime.

Pour une description des différentes propriétés et personnalisations disponibles, consultez Extending ServiceHost and the Dispatcher.

Une fois qu'une personnalisation a été décidée (et que l'interface de personnalisation a été implémentée, si nécessaire) et que le IEndpointBehavior qui a été décidé est la portée appropriée de personnalisation, la personnalisation doit être insérée dans l'exécution Windows Communication Foundation (WCF) en implémentant IEndpointBehavior et en ajoutant le comportement de point de terminaison à l'exécution.

Il existe deux méthodes pour ajouter le comportement à l'exécution :

  • Par programme, ajoutez le comportement de point de terminaison personnalisé à la propriété Behaviors avant l'ouverture de l'hôte de service (dans une application de service) ou de la fabrique de canal (dans une application cliente).

  • Configurez le comportement à l'aide d'un fichier de configuration de l'application. Pour plus d'informations, consultez <behaviorExtensions>.

Pour effectuer la tâche de personnalisation de service à laquelle il est destiné, l'objet IEndpointBehavior doit être ajouté à la propriété ServiceEndpoint.Behaviors avant la construction de l'exécution de service, qui se produit lors de l'appel à la méthode ICommunicationObject.Open sur System.ServiceModel.ServiceHost. Pour effectuer une tâche de personnalisation cliente, l'objet IEndpointBehavior doit être ajouté à la propriété ServiceEndpoint.Behaviors avant l'appel aux méthodes ChannelFactory<TChannel>.CreateChannel ou ICommunicationObject.Open sur ChannelFactory<TChannel>.

L'exemple de code suivant montre l'implémentation d'un comportement de point de terminaison qui ajoute un objet System.ServiceModel.Dispatcher.IDispatchMessageInspector dans une application de service. Dans ce cas, la classe EndpointBehaviorMessageInspector implémente System.ServiceModel.Dispatcher.IDispatchMessageInspector pour inspecter le message entrant et sortant, l'interface IEndpointBehavior pour insérer la classe Inspector dans le système d'inspection pour tous les points de terminaison auxquels s'applique le comportement et l'System.ServiceModel.Configuration.BehaviorExtensionElement pour activer le comportement d'un inspecteur de message à l'aide d'un fichier de configuration de l'application.

La première étape consiste à implémenter l'inspecteur de message.


// IDispatchMessageInspector Members

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

public void BeforeSendReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
  Console.WriteLine("BeforeSendReply called.");
}


L'exemple de code suivant montre l'utilisation de la méthode ApplyDispatchBehavior pour ajouter l'inspecteur de message à la propriété DispatchRuntime.MessageInspectors.


// IEndpointBehavior Members
public void AddBindingParameters(ServiceEndpoint serviceEndpoint, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
{
  return;
}

public void ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime behavior)
{
  behavior.MessageInspectors.Add(new EndpointBehaviorMessageInspector());
}

public void ApplyDispatchBehavior(ServiceEndpoint serviceEndpoint, EndpointDispatcher endpointDispatcher)
{
  endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new EndpointBehaviorMessageInspector());
}

public void Validate(ServiceEndpoint serviceEndpoint)
{
  return;
}


L'exemple de code suivant montre l'implémentation de l'System.ServiceModel.Configuration.BehaviorExtensionElement pour activer l'utilisation du comportement d'un inspecteur de message à partir d'un fichier de configuration.


// BehaviorExtensionElement members
public override Type BehaviorType
{
  get { return typeof(EndpointBehaviorMessageInspector); }
}

protected override object CreateBehavior()
{
  return new EndpointBehaviorMessageInspector();
}


Enfin, le fichier de configuration suivant montre comment l'exemple précédent peut être utilisé à partir de la configuration.


<configuration>
  <system.serviceModel>
    <services>
      <service 
        name="Microsoft.WCF.Documentation.SampleService"
        behaviorConfiguration="metadataSupport"
      >
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/ServiceMetadata" />
          </baseAddresses>
        </host>
        <endpoint
          address="/SampleService"
          binding="wsHttpBinding"
          behaviorConfiguration="withMessageInspector" 
          contract="Microsoft.WCF.Documentation.ISampleService"
        />
        <endpoint
           address="mex"
           binding="mexHttpBinding"
           contract="IMetadataExchange"
        />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
      <behavior name="metadataSupport">
        <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
      </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="withMessageInspector">
          <endpointMessageInspector />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <extensions>
      <behaviorExtensions>
        <add 
          name="endpointMessageInspector"
          type="Microsoft.WCF.Documentation.EndpointBehaviorMessageInspector, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
        />
      </behaviorExtensions>
    </extensions>
  </system.serviceModel>
</configuration>



<configuration>
  <system.serviceModel>
    <services>
      <service 
        name="Microsoft.WCF.Documentation.SampleService"
        behaviorConfiguration="metadataSupport"
      >
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/ServiceMetadata" />
          </baseAddresses>
        </host>
        <endpoint
          address="/SampleService"
          binding="wsHttpBinding"
          behaviorConfiguration="withMessageInspector" 
          contract="Microsoft.WCF.Documentation.ISampleService"
        />
        <endpoint
           address="mex"
           binding="mexHttpBinding"
           contract="IMetadataExchange"
        />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
      <behavior name="metadataSupport">
        <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
      </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="withMessageInspector">
          <endpointMessageInspector />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <extensions>
      <behaviorExtensions>
        <add 
          name="endpointMessageInspector"
          type="Microsoft.WCF.Documentation.EndpointBehaviorMessageInspector, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
        />
      </behaviorExtensions>
    </extensions>
  </system.serviceModel>
</configuration>


.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.