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 ServiceModel Metadata Utility-Tool (Svcutil.exe)-Tools und durch Weitergabe 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 Dienstmetadaten mithilfe standardisierter Protokolle, wie z. B. 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. Die von einer System.ServiceModel.Description.MetadataExchangeClient-Instanz verwendete Bindung kann 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 sein. 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 System.ServiceModel.Description.MetadataExchangeClient.GetWebRequest(System.Uri,System.String,System.String)-Methode ändern oder ersetzen.
In diesem Abschnitt
- Gewusst wie: 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.