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, wordt de System.ServiceModel.Description.ServiceDescription onderzocht en worden XSD en WSDL - inclusief beleidsaanspraken - 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. Het System.ServiceModel.Description.IWsdlExportExtension-interface implementeren en gebruiken, waarmee de WSDL-generatiegegevens aan u worden blootgesteld voordat u de WSDL publiceert.

  2. Implementeer en gebruik de interface System.ServiceModel.Description.IPolicyExportExtension, waarmee de beleidsgegevens aan u worden blootgesteld voordat de beleidsverklaringen in WSDL-gegevens worden geëxporteerd.

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 De runtime configureren en uitbreiden met gedrag voor meer informatie over het invoegen van 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 op een BindingElement en voeg het bindingselement toe aan de binding om aangepaste beleidsverklaringen over bindingsondersteuning en contractmogelijkheden in de WSDL te schrijven. De IPolicyExportExtension wordt eenmaal aangeroepen wanneer het geïmplementeerde bindingselement in een binding wordt geëxporteerd en draagt de PolicyConversionContext over aan de ExportPolicy methode. U kunt de methoden op het PolicyConversionContext exemplaar gebruiken voor het toevoegen aan de beleidsverklaringen die zijn gekoppeld aan de WSDL-binding op de onderwerpen bericht, bewerking of eindpunt.

Voor meer informatie, zie Hoe te: Aangepaste beleidsverklaringen exporteren.

Zie ook