Freigeben über


Gewusst wie: Exportieren von benutzerdefinierten Richtlinienassertionen

Richtlinienassertionen beschreiben die Funktionen und Anforderungen eines Dienstendpunkts. Dienstanwendungen können benutzerdefinierte Richtlinienassertionen in Dienstmetadaten verwenden, um Endpunkt-, Bindungs- oder Vertragsanpassungsinformationen an die Clientanwendung zu übermitteln. Sie können Assertionen je nach den zu übermittelnden Funktionen oder Anforderungen in Windows Communication Foundation (WCF) in Richtlinienausdrücke exportieren, die in WSDL-Bindungen am Subjekt des Endpunkts, des Vorgangs oder der Nachricht angefügt werden.

Exportieren Sie benutzerdefinierte Richtlinienassertionen, indem Sie die System.ServiceModel.Description.IPolicyExportExtension-Schnittstelle für System.ServiceModel.Channels.BindingElement implementieren und das Bindungselement entweder direkt in die Bindung des Dienstendpunkts einfügen oder das Bindungselement in der Anwendungskonfigurationsdatei registrieren. Bei der Implementierung des Richtlinienexports sollte die benutzerdefinierte Richtlinienassertion der entsprechenden System.ServiceModel.Description.PolicyAssertionCollection zum System.ServiceModel.Description.PolicyConversionContext, der in der ExportPolicy-Methode übergeben wird, als System.Xml.XmlElement-Instanz hinzugefügt werden.

Außerdem müssen Sie die PolicyVersion-Eigenschaft der WsdlExporter-Klasse überprüfen und geschachtelte Richtlinienausdrücke und Attribute des Richtlinienframework anhand der angegebenen Richtlinienversion in den richtigen Namespace exportieren.

Weitere Informationen zum Importieren von benutzerdefinierten Richtlinienassertionen finden Sie unter System.ServiceModel.Description.IPolicyImportExtension und Gewusst wie: Importieren von benutzerdefinierten Richtlinienassertionen.

So exportieren Sie benutzerdefinierte Richtlinienassertionen

  1. Implementieren Sie die System.ServiceModel.Description.IPolicyExportExtension-Schnittstelle für System.ServiceModel.Channels.BindingElement. Im folgenden Codebeispiel wird die Implementierung einer benutzerdefinierten Richtlinienassertion auf der Bindungsebene veranschaulicht.

  2. Fügen Sie das Bindungselement programmgesteuert oder mithilfe einer Anwendungskonfigurationsdatei in die Endpunktbindung ein. Anweisungen hierzu finden Sie in den folgenden Verfahren.

So fügen Sie ein Bindungselement mit einer Anwendungskonfigurationsdatei ein

  1. Implementieren Sie System.ServiceModel.Configuration.BindingElementExtensionElement für das Bindungselement der benutzerdefinierten Richtlinienassertion.

  2. Fügen Sie der Konfigurationsdatei mit dem <bindingElementExtensions>-Element die Erweiterung des Bindungselements hinzu.

  3. Erstellen Sie mit System.ServiceModel.Channels.CustomBinding eine benutzerdefinierte Bindung.

So fügen Sie ein Bindungselement programmgesteuert ein

  1. Erstellen Sie ein neues System.ServiceModel.Channels.BindingElement, und fügen Sie es System.ServiceModel.Channels.CustomBinding hinzu.

  2. Fügen Sie die benutzerdefinierte Bindung aus Schritt 1 einem neuen Endpunkt hinzu, und fügen Sie diesen neuen Dienstendpunkt System.ServiceModel.ServiceHost hinzu, indem Sie die AddServiceEndpoint-Methode aufrufen.

  3. Öffnen Sie ServiceHost. Im folgenden Codebeispiel wird das Erstellen einer benutzerdefinierten Bindung und das programmgesteuerte Einfügen von Bindungselementen veranschaulicht.

Siehe auch

Aufgaben

Gewusst wie: Importieren von benutzerdefinierten Richtlinienassertionen

Referenz

IPolicyImportExtension
IPolicyExportExtension