Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Windows Communication Foundation (WCF) ist der Metadatenexport der Prozess der Beschreibung von Dienstendpunkten und das Projizieren in eine parallele, standardisierte Darstellung, die Clients verwenden können, um zu verstehen, wie der Dienst verwendet wird. Benutzerdefinierte Metadaten bestehen aus XML-Elementen, die von den vom System bereitgestellten Metadatenexporteuren nicht exportiert werden können. In der Regel umfasst dies benutzerdefinierte WSDL-Elemente für benutzerdefinierte Verhaltensweisen und Bindungselemente und Richtlinien assertionen zu den Funktionen und Anforderungen von Bindungen und Verträgen.
In diesem Abschnitt wird das Exportieren von benutzerdefinierten WSDL- oder Richtlinienassertionen beschrieben, wobei der Exportprozess selbst nicht im Fokus steht. Weitere Informationen zur Verwendung der Typen, die Metadaten exportieren und importieren, unabhängig davon, ob die Metadaten benutzerdefinierte oder vom System konstruiert sind, finden Sie unter Exportieren und Importieren von Metadaten.
Überblick
Wenn Metadaten mithilfe der System.ServiceModel.Description.ServiceMetadataBehavior veröffentlicht werden, wird die System.ServiceModel.Description.ServiceDescription untersucht, und XSD sowie WSDL -- einschließlich Richtlinienerklärungen -- werden für alle Verträge und Bindungen generiert, die WCF mit den vom System bereitgestellten Attributen und Bindungen unterstützen kann. Benutzerdefinierte Verhaltensattribute oder Bindungselemente erfordern jedoch Unterstützung, bevor sie ordnungsgemäß exportiert werden können.
In diesem Abschnitt wird folgendes beschrieben:
Wie man die Schnittstelle System.ServiceModel.Description.IWsdlExportExtension implementiert, die Ihnen die WSDL-Generierungsdaten freigibt, bevor das WSDL veröffentlicht wird.
Implementieren und Verwenden der System.ServiceModel.Description.IPolicyExportExtension Schnittstelle, die Ihnen die Richtliniendaten vor dem Export der Richtlinienaussagen in WSDL-Daten zur Verfügung stellt.
Weitere Informationen zum Importieren von benutzerdefinierten WSDL- und Richtlinien assertionen finden Sie unter Importieren von benutzerdefinierten Metadaten für eine WCF-Erweiterung.
Exportieren von benutzerdefinierten WSDL-Elementen
Implementieren Sie das IWsdlExportExtension bei einem Vorgangsverhalten, einem Vertragsverhalten, einem Endpunktverhalten oder einem Bindungselement (IOperationBehavior, IContractBehavior, IEndpointBehavior bzw. System.ServiceModel.Channels.BindingElement entsprechend) und fügen Sie die Verhaltensweisen oder Bindungselemente in die Beschreibung des Dienstes ein, den Sie exportieren möchten. (Weitere Informationen zum Einfügen von Verhaltensweisen finden Sie unter Konfigurieren und Erweitern der Laufzeit mit Verhalten). Die IWsdlExportExtension wird für jeden Endpunkt aufgerufen, wobei jeder Endpunkt zuerst den Vertrag exportiert, wenn er noch nicht bereits exportiert wurde. Je nach Ihren Anforderungen können Sie an beiden Exportprozessen teilnehmen:
Verwenden Sie die WsdlContractConversionContext Zum Ändern der exportierten Metadaten in der ExportContract Methode.
Verwenden Sie die WsdlEndpointConversionContext zum Ändern der exportierten Metadaten für den Endpunkt in der ExportEndpoint Methode.
Die ExportContract Methode wird für alle IWsdlExportExtension Implementierungen innerhalb der System.ServiceModel.Description.ContractDescription zu exportierenden Instanz aufgerufen. Die ExportEndpoint Methode wird auf allen IWsdlExportExtension Implementierungen mit der System.ServiceModel.Description.ServiceEndpoint Instanz aufgerufen, die exportiert wird.
Weitere Informationen finden Sie unter How to: Export Custom WSDL und dem Beispiel Custom WSDL Publication.
Exportieren von benutzerdefinierten Richtlinienassertionen
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. Der IPolicyExportExtension Aufruf erfolgt einmal beim Exportieren des implementierten Bindungselements in einer Bindung und übergibt die PolicyConversionContext Methode an die ExportPolicy Methode. 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.
Weitere Informationen finden Sie unter Vorgehensweise: Exportieren von benutzerdefinierten Richtlinienassertionen.