Delen via


Aangepaste metagegevens exporteren voor een WCF-extensie

In Windows Communication Foundation (WCF) is het exporteren van metagegevens het proces van het beschrijven van service-eindpunten en het projecteren ervan in een parallelle, gestandaardiseerde weergave die clients kunnen gebruiken om te begrijpen hoe de service moet worden gebruikt. Aangepaste metagegevens bestaan uit XML-elementen die de door het systeem geleverde metagegevensexporteurs niet kunnen exporteren. Dit omvat doorgaans aangepaste WSDL-elementen voor door de gebruiker gedefinieerd gedrag en bindingselementen en beleidsverklaringen over de mogelijkheden en vereisten van bindingen en contracten.

In deze sectie wordt beschreven hoe u aangepaste WSDL- of beleidsverklaringen exporteert en zich niet richt op het exportproces zelf. Zie Exporteren en importeren van metagegevens voor meer informatie over het gebruik van de typen die metagegevens exporteren en importeren, ongeacht of de metagegevens aangepast of door het systeem zijn samengesteld.

Overzicht

Wanneer metagegevens worden gepubliceerd met behulp van de System.ServiceModel.Description.ServiceMetadataBehavior, worden de System.ServiceModel.Description.ServiceDescription onderzochte en XSD en WSDL - inclusief beleidsverklaringen - gegenereerd voor alle contracten en bindingen die WCF kan ondersteunen met behulp van door het systeem geleverde kenmerken en bindingen. Aangepaste gedragskenmerken of bindingselementen vereisen echter ondersteuning voordat ze correct kunnen worden geëxporteerd.

In deze sectie wordt het volgende beschreven:

  1. De interface implementeren en gebruiken System.ServiceModel.Description.IWsdlExportExtension , waarmee de WSDL-generatiegegevens aan u worden blootgesteld voordat u de WSDL publiceert.

  2. De interface implementeren en gebruiken System.ServiceModel.Description.IPolicyExportExtension , waarmee de beleidsgegevens aan u worden blootgesteld voordat u de beleidsverklaringen in WSDL-gegevens exporteert.

Zie Aangepaste metagegevens importeren voor een WCF-extensie voor meer informatie over het importeren van aangepaste WSDL- en beleidsverklaringen.

Aangepaste WSDL-elementen exporteren

Implementeer het IWsdlExportExtension gedrag van een bewerking, contractgedrag, eindpuntgedrag of bindingselement (IOperationBehavior, IContractBehaviorIEndpointBehaviorof System.ServiceModel.Channels.BindingElement respectievelijk) en voeg het gedrag of bindingselementen in de beschrijving van de service die u probeert te exporteren. (Zie voor meer informatie over het invoegen van gedrag De runtime configureren en uitbreiden met gedrag). Het IWsdlExportExtension wordt aangeroepen voor elk eindpunt en elk eindpunt exporteert eerst het contract als het nog niet is geëxporteerd. U kunt deelnemen aan een van beide exportprocessen, afhankelijk van uw behoeften:

De ExportContract methode wordt aangeroepen voor alle IWsdlExportExtension implementaties binnen het System.ServiceModel.Description.ContractDescription exemplaar dat wordt geëxporteerd. De ExportEndpoint methode wordt aangeroepen voor alle IWsdlExportExtension implementaties met het System.ServiceModel.Description.ServiceEndpoint exemplaar dat wordt geëxporteerd.

Zie Instructies voor meer informatie: Aangepaste WSDL exporteren en de voorbeeldpublicatie van aangepaste WSDL.

Aangepaste beleidsverklaringen exporteren

Implementeer de IPolicyExportExtension on a BindingElement en voeg het bindingselement toe aan de binding om aangepaste beleidsverklaringen te schrijven over bindingsondersteuning en contractmogelijkheden in de WSDL. De IPolicyExportExtension naam wordt eenmaal aangeroepen wanneer u het geïmplementeerde bindingselement in een binding exporteert en de PolicyConversionContext methode doorgeeft aan de ExportPolicy methode. U kunt de methoden op het PolicyConversionContext exemplaar gebruiken om toe te voegen aan de beleidsverklaringen die zijn gekoppeld aan de WSDL-binding op het bericht, de bewerking of eindpuntonderwerp.

Zie Instructies voor meer informatie : Aangepaste beleidsverklaringen exporteren.

Zie ook