Abrufen von Metadaten

Das Abrufen von Metadaten ist der Prozess, Metadaten von einem Metadatenendpunkt, wie einem MEX-Medadatenendpunkt (WS-MetadataExchange) oder einem HTTP/GET-Metadatenendpunkt, anzufordern und abzurufen.

Abrufen von Metadaten mit Svcutil.exe in der Befehlszeile

Sie können Dienstmetadaten mit WS-MetadataExchange- oder HTTP/GET-Anforderungen unter Verwendung des Tools ServiceModel Metadata Utility Tool (Svcutil.exe) und durch Angabe des /target:metadata-Switches und einer Adresse abrufen. Svcutil.exe lädt die Metadaten bei der angegebenen Adresse herunter und speichert die Datei auf Datenträger. Svcutil.exe verwendet intern eine System.ServiceModel.Description.MetadataExchangeClient-Instanz und lädt die IMetadataExchange-Endpunktkonfiguration, deren Name mit dem Schema der an Svcutil.exe als Eingabe weitergegebenen Adresse übereinstimmt, aus der Konfiguration.

Programmgesteuertes Abrufen von Metadaten mit dem MetadataExchangeClient

Windows Communication Foundation (WCF) kann Metadaten von Diensten mithilfe von standardisierten Protokollen wie WS-MetadataExchange und HTTP/GET-Anforderungen abrufen. Beide Protokolle werden vom MetadataExchangeClient-Typ unterstützt. Dienstmetadaten werden mit dem System.ServiceModel.Description.MetadataExchangeClient-Typ abgerufen, indem eine Adresse für den Metadatenendpunkt und eine optionale Bindung angegeben werden. Bei der von einer System.ServiceModel.Description.MetadataExchangeClient-Instanz verwendeten Bindung kann es sich um eine der Standardbindungen aus der statischen MetadataExchangeBindings-Klasse, eine vom Benutzer angegebene Bindung oder eine aus einer Endpunktkonfiguration für den IMetadataExchange-Vertrag geladene Bindung handeln. Der System.ServiceModel.Description.MetadataExchangeClient kann auch HTTP-URL-Verweise auf Metadaten mit dem HttpWebRequest-Typ auflösen.

Standardmäßig wird eine System.ServiceModel.Description.MetadataExchangeClient-Instanz an eine einzelne ChannelFactory-Instanz gebunden. Sie können die System.ServiceModel.ChannelFactory-Instanz, die von einem System.ServiceModel.Description.MetadataExchangeClient verwendet wird, durch Überschreiben der virtuellen GetChannelFactory-Methode ändern oder ersetzen. Ebenso können Sie die HttpWebRequest-Instanz, die von einem System.ServiceModel.Description.MetadataExchangeClient zur Erstellung von HTTP/GET-Anforderungen verwendet wird, durch Überschreiben der virtuellen MetadataExchangeClient.GetWebRequest-Methode ändern oder ersetzen.

In diesem Abschnitt

Vorgehensweise: Verwenden von „Svcutil.exe“ zum Herunterladen von Metadatendokumenten
Veranschaulicht, wie Svcutil.exe zum Herunterladen von Metadatendokumenten verwendet wird.

Vorgehensweise: Verwenden von MetadataResolver, um Bindungsmetadaten dynamisch zu erhalten
Veranschaulicht, wie der System.ServiceModel.Description.MetadataResolver verwendet wird, um Bindungsmetadaten zur Laufzeit dynamisch zu erhalten.

Vorgehensweise: Die Verwendung von MetadataExchangeClient zum Abrufen von Metadaten
Veranschaulicht, wie eine System.ServiceModel.Description.MetadataExchangeClient-Klasse zum Herunterladen von Metadatendateien in ein System.ServiceModel.Description.MetadataSet-Objekt verwendet wird, das System.ServiceModel.Description.MetadataSection-Objekte zum Schreiben in Dateien oder für andere Zwecke enthält.

Siehe auch