Partager via


Comment : exporter des assertions de stratégie personnalisées

Les assertions de stratégie décrivent les fonctions et les spécifications d'un point de terminaison de service. Les applications de service peuvent utiliser des assertions de stratégie personnalisées dans les métadonnées de service pour communiquer des informations de personnalisation de point de terminaison, de liaison ou de contrat à l'application cliente. Vous pouvez utiliser Windows Communication Foundation (WCF) pour exporter des assertions dans des expressions de stratégie attachées dans les liaisons WSDL au point de terminaison, à l'opération ou aux objets de message, selon les fonctions ou les spécifications que vous communiquez.

Les assertions de stratégie personnalisées sont exportées en implémentant l'interface System.ServiceModel.Description.IPolicyExportExtension sur System.ServiceModel.Channels.BindingElement et en insérant directement l'élément de liaison dans la liaison du point de terminaison de service ou en inscrivant l'élément de liaison dans le fichier de configuration de l'application. Votre implémentation de l'exportation de la stratégie doit ajouter votre assertion de stratégie personnalisée comme une instance System.Xml.XmlElement au System.ServiceModel.Description.PolicyAssertionCollection approprié sur le System.ServiceModel.Description.PolicyConversionContext qui est passé dans la méthode ExportPolicy.

En outre, vous devez vérifier la propriété PolicyVersion de la classe WsdlExporter et exporter les expressions de stratégie imbriquées et les attributs de l'infrastructure de stratégie dans l'espace de noms correct en fonction de la version de stratégie spécifiée.

Pour importer des assertions de stratégie personnalisées, consultez System.ServiceModel.Description.IPolicyImportExtension et Comment : importer des assertions de stratégie personnalisées.

Pour exporter des assertions de stratégie personnalisées

  1. Implémentez l'interface System.ServiceModel.Description.IPolicyExportExtension sur un System.ServiceModel.Channels.BindingElement. L'exemple de code ci-dessous montre l'implémentation d'une assertion de stratégie personnalisée au niveau de la liaison.

  2. Insérez l'élément de liaison dans la liaison de point de terminaison par programme ou à l'aide d'un fichier de configuration d'application. Reportez-vous aux procédures ci-dessous.

Pour insérer un élément de liaison à l'aide d'un fichier de configuration d'application

  1. Implémentez System.ServiceModel.Configuration.BindingElementExtensionElement pour l'élément de liaison de l'assertion de stratégie personnalisée.

  2. Ajoutez l'extension d'élément de liaison au fichier de configuration à l'aide de l'élément <bindingElementExtensions>.

  3. Créez une liaison personnalisée à l'aide de System.ServiceModel.Channels.CustomBinding.

Pour insérer un élément de liaison par programme

  1. Créez un nouveau System.ServiceModel.Channels.BindingElement et ajoutez-le à un System.ServiceModel.Channels.CustomBinding.

  2. Ajoutez la liaison personnalisée de l'étape 1 à un nouveau point de terminaison et ajoutez ce nouveau point de terminaison de service au System.ServiceModel.ServiceHost en appelant la méthode AddServiceEndpoint.

  3. Ouvrez ServiceHost. L'exemple de code ci-dessous montre la création d'une liaison personnalisée et l'insertion par programme d'éléments de liaison.

Voir aussi

Tâches

Comment : importer des assertions de stratégie personnalisées

Référence

IPolicyImportExtension
IPolicyExportExtension