Delen via


Metagegevens exporteren en importeren

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. Het importeren van servicemetagegevens is het proces van het ServiceEndpoint genereren van exemplaren of onderdelen van servicemetagegevens.

Metagegevens exporteren

Als u metagegevens wilt exporteren uit System.ServiceModel.Description.ServiceEndpoint exemplaren, gebruikt u een implementatie van de MetadataExporter abstracte klasse. Het WsdlExporter type is de implementatie van de MetadataExporter abstracte klasse die is opgenomen in WCF.

Het System.ServiceModel.Description.WsdlExporter type genereert WSDL-metagegevens (Web Services Description Language) met gekoppelde beleidsexpressies die zijn ingekapseld in een MetadataSet exemplaar. U kunt een System.ServiceModel.Description.WsdlExporter exemplaar gebruiken om metagegevens ContractDescription voor objecten en ServiceEndpoint objecten iteratief te exporteren. U kunt ook een verzameling ServiceEndpoint objecten exporteren en deze koppelen aan een specifieke servicenaam.

Notitie

U kunt de WsdlExporter metagegevens alleen exporteren uit ContractDescription exemplaren die CLR-typegegevens (Common Language Runtime) bevatten, zoals een ContractDescription exemplaar dat is gemaakt met behulp van de ContractDescription.GetContract methode of die is gemaakt als onderdeel van een ServiceDescription exemplaar.ServiceHost U kunt de WsdlExporter metagegevens niet exporteren uit exemplaren die ContractDescription zijn geïmporteerd uit servicemetagegevens of die zijn samengesteld zonder typegegevens.

Metagegevens importeren

WSDL-documenten importeren

Als u servicemetagegevens wilt importeren in WCF, gebruikt u een implementatie van de MetadataImporter abstracte klasse. Het System.ServiceModel.Description.WsdlImporter type is de implementatie van de MetadataImporter abstracte klasse die is opgenomen in WCF. Met het WsdlImporter type worden WSDL-metagegevens geïmporteerd met gekoppelde beleidsregels die zijn gebundeld in een MetadataSet object.

Het WsdlImporter type geeft u controle over het importeren van de metagegevens. U kunt alle eindpunten, alle bindingen of alle contracten importeren. U kunt alle eindpunten importeren die zijn gekoppeld aan een specifieke WSDL-service, binding of poorttype. U kunt het eindpunt ook importeren voor een specifieke WSDL-poort, de binding voor een specifieke WSDL-binding of het contract voor een specifiek type WSDL-poort.

Er WsdlImporter wordt ook een KnownContracts eigenschap weergegeven waarmee u een set contracten kunt opgeven die niet hoeven te worden geïmporteerd. Hierbij WsdlImporter worden de contracten in de KnownContracts eigenschap gebruikt in plaats van een contract te importeren met dezelfde gekwalificeerde naam uit de metagegevens.

Beleid importeren

Het WsdlImporter type verzamelt de beleidsexpressies die zijn gekoppeld aan de onderwerpen van het bericht, de bewerking en het eindpuntbeleid en gebruikt vervolgens de IPolicyImportExtension implementaties in de PolicyImportExtensions verzameling om de beleidsexpressies te importeren.

De beleidsimportlogica verwerkt automatisch beleidsverwijzingen naar beleidsexpressies in hetzelfde WSDL-document en wordt geïdentificeerd met een wsu:Id of xml:id kenmerk. De beleidsimportlogica beschermt toepassingen tegen kringverwijzingen door de grootte van een beleidsexpressie te beperken tot 4096 knooppunten, waarbij een knooppunt een van de volgende elementen is: wsp:Policy, wsp:All, , wsp:ExactlyOne. wsp:policyReference

De beleidsimportlogica normaliseert ook automatisch beleidsexpressies. Geneste beleidsexpressies en het wsp:Optional kenmerk worden niet genormaliseerd. De hoeveelheid normalisatieverwerking is beperkt tot 4096 stappen, waarbij elke stap een beleidsverklaring of een onderliggend element van een wsp:ExactlyOne element oplevert.

Het WsdlImporter type probeert maximaal 32 combinaties van beleidsalternatieven die zijn gekoppeld aan de verschillende WSDL-beleidsonderwerps. Als er geen combinatie wordt geïmporteerd, wordt de eerste combinatie gebruikt om een gedeeltelijke aangepaste binding te maken.

Foutafhandeling

Zowel de MetadataExporterMetadataImporter typen maken een Errors eigenschap beschikbaar die een verzameling fout- en waarschuwingsberichten kan bevatten die zijn opgetreden tijdens de export- en importprocessen, die kunnen worden gebruikt bij het implementeren van hulpprogramma's.

Het WsdlImporter type genereert doorgaans een uitzondering voor een uitzondering die is opgetreden tijdens het importproces en voegt een bijbehorende fout toe aan Errors de eigenschap. De ImportAllContractsmethoden , ImportAllBindingsen ImportAllEndpointsImportEndpoints methoden genereren deze uitzonderingen echter niet, dus u moet de Errors eigenschap controleren om te bepalen of er problemen zijn opgetreden bij het aanroepen van deze methoden.

Het WsdlExporter type voert eventuele uitzonderingen die zijn opgetreden tijdens het exportproces opnieuw af. Deze uitzonderingen worden niet vastgelegd als fouten in de Errors eigenschap. Zodra er WsdlExporter een uitzondering wordt gegenereerd, heeft deze een defecte status en kan deze niet opnieuw worden gebruikt. Er WsdlExporter worden waarschuwingen toegevoegd aan Errors de eigenschap wanneer een bewerking niet kan worden geëxporteerd omdat er jokertekenacties worden gebruikt en wanneer dubbele bindingsnamen worden aangetroffen.

In dit gedeelte

Procedure: Metagegevens importeren in service-eindpunten
Hierin wordt beschreven hoe u gedownloade metagegevens importeert in beschrijvingsobjecten.

Procedure: Metagegevens exporteren vanuit service-eindpunten
Hierin wordt beschreven hoe u beschrijvingsobjecten exporteert naar metagegevens.

Naslaginformatie over ServiceDescription en WSDL
Beschrijft de toewijzing tussen de beschrijvingsobjecten en WSDL.

Procedure: Svcutil.exe gebruiken om metagegevens te exporteren uit gecompileerde servicecode
Beschrijft het gebruik van Svcutil.exe voor het exporteren van metagegevens voor services, contracten en gegevenstypen in gecompileerde assembly's.

Naslaginformatie over gegevenscontractschema's
Beschrijft de subset van het XML-schema (XSD) dat wordt gebruikt voor DataContractSerializer het beschrijven van CLR-typen (Common Language Runtime) voor XML-serialisatie.

Verwijzing

WsdlExporter

WsdlImporter

Zie ook