Exportieren von benutzerdefinierten Metadaten für eine WCF-ErweiterungExporting Custom Metadata for a WCF Extension

In Windows Communication Foundation (WCF) ist metadatenexport der Prozess der Beschreibung von Dienstendpunkten und Ihrer Projektion in eine parallele, standardisierte Darstellung, die Clients verwenden können, wie Sie den Dienst verwenden können.In Windows Communication Foundation (WCF), metadata export is the process of describing service endpoints and projecting them into a parallel, standardized representation that clients can use to understand how to use the service. Benutzerdefinierte Metadaten bestehen aus XML-Elementen, die die vom System bereitgestellten Metadaten-Exporteure nicht exportieren können.Custom metadata consists of XML elements that the system-provided metadata exporters cannot export. Normalerweise gehören hierzu benutzerdefinierte Elemente für benutzerdefinierte Verhalten und Bindungselemente und Richtlinienassertionen über die Fähigkeiten und Anforderungen von Bindungen und Verträgen.Typically, this includes custom WSDL elements for user-defined behaviors and binding elements and policy assertions about the capabilities and requirements of bindings and contracts.

Dieser Abschnitt beschreibt den Export von benutzerdefinierten WSDL- oder Richtlinienassertionen und konzentriert sich nicht auf den Exportprozess selbst.This section describes exporting custom WSDL or policy assertions, and does not focus on the exporting process itself. Weitere Informationen zur Verwendung von Typen, die exportieren und Importieren von Metadaten, unabhängig davon, ob die Metadaten benutzerdefinierte oder vom System erstellt wird, finden Sie unter exportieren und Importieren von Metadaten.For more information about how to use the types that export and import metadata regardless of whether the metadata is custom or system-constructed, see Exporting and Importing Metadata.

ÜbersichtOverview

Wenn Metadaten veröffentlicht werden mithilfe der System.ServiceModel.Description.ServiceMetadataBehavior, die System.ServiceModel.Description.ServiceDescription untersucht und XSD und WSDL – einschließlich der Richtlinienassertionen – werden für alle Verträge und Bindungen, WCF unterstützen kann mithilfe von System gelieferten Attributen und Bindungen, generiert.When metadata is published using the System.ServiceModel.Description.ServiceMetadataBehavior, the System.ServiceModel.Description.ServiceDescription is examined and XSD and WSDL -- including policy assertions -- are generated for all contracts and bindings that WCF can support using system-provided attributes and bindings. Benutzerdefinierte Verhaltensattribute oder Bindungselemente erfordern jedoch Unterstützung, bevor sie ordnungsgemäß exportiert werden können.However, custom behavior attributes or binding elements require support before they can be exported properly.

Dieser Abschnitt beschreibt:This section describes:

  1. Wie man die Schnittstelle System.ServiceModel.Description.IWsdlExportExtension implementiert, die Ihnen die WSDL-Generierungsdaten freigibt, bevor das WSDL veröffentlicht wird.How to implement and use the System.ServiceModel.Description.IWsdlExportExtension interface, which exposes the WSDL generation data to you prior to publishing the WSDL.

  2. Wie man die Schnittstelle System.ServiceModel.Description.IPolicyExportExtension implementiert und nutzt, die Ihnen die Richtliniendaten freigibt, bevor die Richtlinienassertionen in WSDL-Daten exportiert werden.How to implement and use the System.ServiceModel.Description.IPolicyExportExtension interface, which exposes the policy data to you prior to exporting the policy assertions in WSDL data.

Weitere Informationen zum Importieren von benutzerdefinierten WSDL und Richtlinienassertionen finden Sie unter Importieren von benutzerdefinierten Metadaten für eine WCF-Erweiterung.For more information about importing custom WSDL and policy assertions, see Importing Custom Metadata for a WCF Extension.

Exportieren von benutzerdefinierten WSDL-ElementenExporting Custom WSDL Elements

Implementieren Sie IWsdlExportExtension auf einem Vorgangsverhalten, Vertragsverhalten, Endpunktverhalten oder Bindungselement (jeweils IOperationBehavior, IContractBehavior, IEndpointBehavior oder System.ServiceModel.Channels.BindingElement), und fügen Sie die Verhalten oder Bindungselemente in die Beschreibung des Diensts ein, den Sie zu exportieren versuchen.Implement the IWsdlExportExtension on an operation behavior, contract behavior, endpoint behavior or binding element (IOperationBehavior, IContractBehavior, IEndpointBehavior, or System.ServiceModel.Channels.BindingElement respectively) and insert the behaviors or binding elements into the description of the service that you are trying to export. (Weitere Informationen zum Einfügen von Verhaltensweisen finden Sie unter konfigurieren und Erweitern der Laufzeit mit Verhalten).(For more information about inserting behaviors, see Configuring and Extending the Runtime with Behaviors). IWsdlExportExtension wird für jeden Endpunkt aufgerufen, und jeder Endpunkt exportiert zunächst den Vertrag, wenn dieser nicht bereits exportiert worden ist.The IWsdlExportExtension is called for each endpoint and each endpoint exports the contract first if it has not already been exported. Sie können je nach Ihren Bedürfnissen an einem der beiden Exportprozesse teilnehmen:You can participate in either export process, depending upon your needs:

Die Methode ExportContract wird auf allen IWsdlExportExtension-Implementierungen innerhalb der Instanz System.ServiceModel.Description.ContractDescription, die exportiert wird, aufgerufen.The ExportContract method is called on all IWsdlExportExtension implementations within the System.ServiceModel.Description.ContractDescription instance that is being exported. Die Methode ExportEndpoint wird auf allen IWsdlExportExtension-Implementierungen mit der Instanz System.ServiceModel.Description.ServiceEndpoint, die exportiert wird, aufgerufen.The ExportEndpoint method is called on all IWsdlExportExtension implementations with the System.ServiceModel.Description.ServiceEndpoint instance that is being exported.

Weitere Informationen finden Sie unter Vorgehensweise: exportieren Sie benutzerdefinierte WSDL und im Beispiel benutzerdefinierte WSDL-Veröffentlichung.For more information, see How to: Export Custom WSDL and the sample Custom WSDL Publication.

Exportieren von benutzerdefinierten RichtlinienassertionenExporting Custom Policy Assertions

Implementieren Sie IPolicyExportExtension auf BindingElement, und fügen Sie der Bindung das Bindungselement hinzu, um benutzerdefinierte Richtlinienassertionen über den Bindungssupport und die Vertragsfähigkeiten in WSDL zu schreiben.Implement the IPolicyExportExtension on a BindingElement and add the binding element to the binding to write custom policy assertions about binding support and contract capabilities into the WSDL. IPolicyExportExtension wird einmal aufgerufen, wenn das implementierte Bindungselement in eine Bindung exportiert wird, und reicht PolicyConversionContext an die Methode ExportPolicy weiter.The IPolicyExportExtension is called once when exporting the implemented binding element in a binding and passes the PolicyConversionContext to the ExportPolicy method. Sie können die Methoden in der Instanz PolicyConversionContext verwenden, um die Richtlinienassertionen, die der WSDL-Bindung am Nachrichten-, Vorgangs- oder Endpunktsubjekt angehängt sind, zu erweitern.You can use the methods on the PolicyConversionContext instance to add to the policy assertions attached to the WSDL binding at the message, operation or endpoint subjects.

Weitere Informationen finden Sie unter Vorgehensweise: Exportieren von benutzerdefinierten Richtlinienassertionen.For more information, see How to: Export Custom Policy Assertions.

Siehe auchSee Also

Vorgehensweise: Exportieren von benutzerdefinierter WSDLHow to: Export Custom WSDL
Vorgehensweise: Exportieren von benutzerdefinierten RichtlinienassertionenHow to: Export Custom Policy Assertions
Importieren von benutzerdefinierten Metadaten für eine WCF-ErweiterungImporting Custom Metadata for a WCF Extension