Freigeben über


Abrufen von Metadaten

Das Abrufen von Metadaten ist der Prozess des Anforderns und Abrufens von Metadaten von einem Metadatenendpunkt, z. B. einem WS-MetadataExchange (MEX)-Metadatenendpunkt oder einem HTTP/GET-Metadatenendpunkt.

Abrufen von Metadaten aus der Befehlszeile mithilfe von Svcutil.exe

Sie können Dienstmetadaten mithilfe von WS-MetadataExchange- oder HTTP/GET-Anforderungen abrufen, indem Sie das Tool serviceModel Metadata Utility (Svcutil.exe) verwenden und den /target:metadata Switch und eine Adresse übergeben. Svcutil.exe lädt die Metadaten an der angegebenen Adresse herunter und speichert die Datei auf dem Datenträger. Svcutil.exe verwendet eine System.ServiceModel.Description.MetadataExchangeClient Instanz intern und lädt aus der Konfiguration der IMetadataExchange Endpunktkonfiguration, deren Name dem Schema der Adresse entspricht, die als Eingabe an Svcutil.exe übergeben wird.

Programmgesteuertes Abrufen von Metadaten mithilfe des MetadataExchangeClient

Windows Communication Foundation (WCF) kann Dienstmetadaten mithilfe standardisierter Protokolle wie WS-MetadataExchange und HTTP/GET-Anforderungen abrufen. Beide Protokolle werden vom MetadataExchangeClient Typ unterstützt. Sie rufen Dienstmetadaten mithilfe des System.ServiceModel.Description.MetadataExchangeClient Typs ab, indem Sie eine Adresse für den Metadatenendpunkt und eine optionale Bindung angeben. Die von einer System.ServiceModel.Description.MetadataExchangeClient Instanz verwendete Bindung kann eine der Standardbindungen aus der MetadataExchangeBindings statischen Klasse, eine vom Benutzer bereitgestellte Bindung oder eine aus einer Endpunktkonfiguration für den IMetadataExchange Vertrag geladene Bindung sein. System.ServiceModel.Description.MetadataExchangeClient kann auch HTTP-URL-Verweise auf Metadaten mithilfe des HttpWebRequest Typs auflösen.

Standardmäßig ist eine System.ServiceModel.Description.MetadataExchangeClient Instanz an eine einzelne ChannelFactory Instanz gebunden. Sie können die Instanz von System.ServiceModel.ChannelFactory ändern oder ersetzen, die von einer System.ServiceModel.Description.MetadataExchangeClient verwendet wird, indem Sie die virtuelle Methode GetChannelFactory überschreiben. Ebenso können Sie die Instanz ändern oder ersetzen, die von HttpWebRequest zum Erstellen von HTTP/GET-Anforderungen verwendet wird, indem Sie die System.ServiceModel.Description.MetadataExchangeClient virtuelle Methode überschreiben.

In diesem Abschnitt

Vorgehensweise: Verwenden von Svcutil.exe zum Herunterladen von Metadatendokumenten
Veranschaulicht, wie Metadatendokumente mithilfe von Svcutil.exe heruntergeladen werden.

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

Vorgehensweise: Verwenden von MetadataExchangeClient zum Abrufen von Metadaten
Veranschaulicht die Verwendung der Klasse zum Herunterladen von System.ServiceModel.Description.MetadataExchangeClient Metadatendateien in ein System.ServiceModel.Description.MetadataSet Objekt, das Objekte enthält System.ServiceModel.Description.MetadataSection , die in Dateien oder für andere Zwecke geschrieben werden sollen.

Siehe auch