Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans Windows Communication Foundation (WCF), l’exportation des métadonnées consiste à décrire les points de terminaison de service et à les projeter dans une représentation parallèle et standardisée que les clients peuvent utiliser pour comprendre comment utiliser le service. L’importation de métadonnées de service est le processus de génération d’instances ServiceEndpoint ou de parties à partir de métadonnées de service.
Exportation des métadonnées
Pour exporter des métadonnées à partir d’instances System.ServiceModel.Description.ServiceEndpoint , utilisez une implémentation de la MetadataExporter classe abstraite. Le WsdlExporter type est l’implémentation de la MetadataExporter classe abstraite incluse avec WCF.
Le System.ServiceModel.Description.WsdlExporter type génère des métadonnées WSDL (Web Services Description Language) avec des expressions de stratégie jointes encapsulées dans une MetadataSet instance. Vous pouvez utiliser une System.ServiceModel.Description.WsdlExporter instance pour exporter de manière itérative les métadonnées pour ContractDescription les objets et ServiceEndpoint les objets. Vous pouvez également exporter une collection d’objets et les associer à un nom de ServiceEndpoint service spécifique.
Remarque
Vous pouvez uniquement utiliser la WsdlExporter méthode pour exporter des métadonnées à partir d’instances ContractDescription qui contiennent des informations de type CLR (Common Language Runtime), telles qu’une ContractDescription instance créée à l’aide de la ContractDescription.GetContract méthode ou créée dans le ServiceDescription cadre d’une ServiceHost instance. Vous ne pouvez pas utiliser l’option WsdlExporter pour exporter des métadonnées à partir d’instances importées à partir de ContractDescription métadonnées de service ou construites sans informations de type.
Importation de métadonnées
Importation de documents WSDL
Pour importer des métadonnées de service dans WCF, utilisez une implémentation de la MetadataImporter classe abstraite. Le System.ServiceModel.Description.WsdlImporter type est l’implémentation de la MetadataImporter classe abstraite incluse avec WCF. Le WsdlImporter type importe les métadonnées WSDL avec des stratégies jointes regroupées dans un MetadataSet objet.
Le WsdlImporter type vous permet de contrôler comment importer les métadonnées. Vous pouvez importer tous les points de terminaison, toutes les liaisons ou tous les contrats. Vous pouvez importer tous les points de terminaison associés à un service, une liaison ou un type de port WSDL spécifique. Vous pouvez également importer le point de terminaison pour un port WSDL spécifique, la liaison pour une liaison WSDL spécifique ou le contrat pour un type de port WSDL spécifique.
Il WsdlImporter expose également une KnownContracts propriété qui vous permet de spécifier un ensemble de contrats qui n’ont pas besoin d’être importés. WsdlImporter utilise les contrats dans la propriété KnownContracts plutôt que d'importer un contrat ayant le même nom qualifié à partir des métadonnées.
Importation de stratégies
Le type WsdlImporter collecte les expressions de stratégie associées au message, à l’opération et aux sujets de politique des points de terminaison, puis utilise les implémentations de la collection IPolicyImportExtension pour importer ces expressions de stratégie.
La logique d'importation de politique gère automatiquement les références de politique aux expressions de politique dans le même document WSDL et est identifiée par un attribut wsu:Id ou xml:id. La logique d’importation de stratégie protège les applications contre les références de stratégie circulaires en limitant la taille d’une expression de stratégie à 4 096 nœuds, où un nœud est un des éléments suivants : wsp:Policy, wsp:All, wsp:ExactlyOne, wsp:policyReference.
La logique d’importation de stratégie normalise également automatiquement les expressions de stratégie. Les expressions de stratégie imbriquées et l’attribut wsp:Optional ne sont pas normalisés. La quantité de traitement de normalisation effectuée est limitée à 4 096 étapes, où chaque étape génère une assertion de stratégie ou un élément enfant d’un wsp:ExactlyOne élément.
Le WsdlImporter type tente jusqu’à 32 combinaisons d’alternatives de stratégie attachées aux différents sujets de stratégie WSDL. Si aucune combinaison n’est importée correctement, la première combinaison est utilisée pour construire une liaison personnalisée partielle.
Gestion des erreurs
Les types MetadataExporter et MetadataImporter exposent une propriété Errors qui peut contenir une collection de messages d’erreur et d’avertissement rencontrés, respectivement, pendant les processus d’exportation et d’importation, qui peuvent être utilisés lors de l’implémentation d’outils.
Le WsdlImporter type lève généralement une exception pour une exception interceptée pendant le processus d’importation et ajoute une erreur correspondante à sa Errors propriété. Cependant, les méthodes ImportAllContracts, ImportAllBindings, ImportAllEndpoints et ImportEndpoints ne lèvent pas ces exceptions, vous devez donc vérifier la propriété Errors pour déterminer si des problèmes se sont produits lors de l'appel de ces méthodes.
Le type WsdlExporter lève à nouveau toutes les exceptions détectées pendant le processus d'exportation. Ces exceptions ne sont pas capturées en tant qu’erreurs dans la Errors propriété. Une fois l’exception WsdlExporter levée, elle est dans un état d’erreur et ne peut pas être réutilisée. Le WsdlExporter ajoute des avertissements à sa propriété Errors lorsqu’une opération ne peut pas être exportée parce qu'elle utilise des actions avec des caractères génériques et lorsque des noms de liaison en double sont rencontrés.
Dans cette section
Guide pratique pour importer des métadonnées dans des points de terminaison de service Décrit comment importer des métadonnées téléchargées dans des objets de description.
Guide pratique pour exporter des métadonnées à partir de points de terminaison de service Décrit comment exporter des objets de description dans des métadonnées.
Référence ServiceDescription et WSDL Décrit le mappage entre les objets de description et le WSDL.
Guide pratique pour utiliser Svcutil.exe pour exporter des métadonnées à partir du code de service compilé Décrit l’utilisation de Svcutil.exe pour exporter des métadonnées pour les services, les contrats et les types de données dans les assemblys compilés.
Référence du schéma de contrat de données Décrit le sous-ensemble du schéma XML (XSD) utilisé par DataContractSerializer afin de décrire les types CLR (Common Language Runtime) pour la sérialisation XML.