Exportation de métadonnées personnalisées pour une extension WCF
Dans Windows Communication Foundation (WCF), le processus d'exportation de métadonnées consiste à décrire des points de terminaison de service et à les projeter dans une représentation parallèle standardisée qui permet aux clients de comprendre comment utiliser le service. Les métadonnées personnalisées sont composées d'éléments XML que les exportateurs de métadonnées fournis par le système ne peuvent pas exporter. En général, cela inclut les éléments WSDL personnalisés des comportements définis par l'utilisateur ainsi que les éléments de liaison et les assertions de stratégie relatives aux fonctions et spécifications des liaisons et contrats.
Cette section décrit l'exportation des éléments WSDL personnalisés ou des assertions de stratégie, mais ne traite pas du processus d'exportation lui-même. Pour plus d'informations sur l'utilisation des types qui exportent et importent des métadonnées, que celles-ci soient personnalisées ou générées par le système, consultez Exportation et importation de métadonnées.
Vue d'ensemble
Lorsque les métadonnées sont publiés à l'aide de System.ServiceModel.Description.ServiceMetadataBehavior, System.ServiceModel.Description.ServiceDescription est examiné, et XSD et WSDL, y compris les assertions de stratégie, sont générés pour l'ensemble des contrats et des liaisons que WCF peut prendre en charge à l'aide des liaisons et des attributs fournis par le système. Toutefois, les éléments de liaison ou les attributs de comportement personnalisés requièrent une prise en charge pour pouvoir être exportés correctement.
Cette section décrit :
- Comment implémenter et utiliser l'interface System.ServiceModel.Description.IWsdlExportExtension, laquelle vous expose les données de génération WSDL avant de publier le WSDL.
- Comment implémenter et utiliser l'interface System.ServiceModel.Description.IPolicyExportExtension, laquelle vous expose les données de stratégie avant d'exporter les assertions de stratégie dans les données WSDL.
Pour plus d'informations sur l'importation d'assertions de stratégie et d'éléments WSDL personnalisés, consultez Importation de métadonnées personnalisées pour une extension WCF.
Exportation d'éléments WSDL personnalisés
Implémentez IWsdlExportExtension sur un comportement d'opération, comportement de contrat, comportement de point de terminaison ou élément de liaison (IOperationBehavior, IContractBehavior, IEndpointBehavior ou System.ServiceModel.Channels.BindingElement respectivement) et insérez les comportements ou éléments de liaison dans la description du service que vous tentez d'exporter. (Pour plus d'informations sur l'insertion de comportements, consultez Configuration et extension de l'exécution à l'aide de comportements). IWsdlExportExtension est appelé pour chaque point de terminaison et chaque point de terminaison exporte en premier le contrat si cela n'a pas été déjà fait. Selon vos besoins, vous pouvez participer à l'un ou à l'autre processus d'exportation :
- WsdlContractConversionContext permet de modifier les métadonnées exportées dans la méthode ExportContract.
- WsdlEndpointConversionContext permet de modifier les métadonnées exportées pour le point de terminaison dans la méthode ExportEndpoint.
La méthode ExportContract est appelée sur toutes les implémentations IWsdlExportExtension dans l'instance System.ServiceModel.Description.ContractDescription exportée. La méthode ExportEndpoint est appelée sur toutes les implémentations IWsdlExportExtension avec l'instance System.ServiceModel.Description.ServiceEndpoint exportée.
Pour plus d'informations, consultez Comment : exporter des informations WSDL personnalisées et l'exemple Custom WSDL Publication.
Exportation d'assertions de stratégie personnalisées
Implémentez IPolicyExportExtension sur un BindingElement et ajoutez l'élément de liaison à la liaison pour écrire des assertions de stratégie personnalisées concernant la prise en charge de la liaison et les fonctions de contrat dans le WSDL. IPolicyExportExtension est appelé une fois lors de l'exportation de l'élément de liaison implémenté dans une liaison, et passe PolicyConversionContext à la méthode ExportPolicy. Vous pouvez utiliser les méthodes sur l'instance PolicyConversionContext à ajouter aux assertions de stratégie jointe à la liaison WSDL au niveau des objets de message, d'opération ou de point de terminaison.
Pour plus d'informations, consultez Comment : exporter des assertions de stratégie personnalisées.
Voir aussi
Tâches
Comment : exporter des informations WSDL personnalisées
Comment : exporter des assertions de stratégie personnalisées
Concepts
Importation de métadonnées personnalisées pour une extension WCF