メタデータの取得は、メタデータ エンドポイント (WS-MetadataExchange (MEX) メタデータ エンドポイントや HTTP/GET メタデータ エンドポイントなど) からメタデータを要求および取得するプロセスです。
Svcutil.exe を使用してコマンド ラインからメタデータを取得する
ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe) ツールを使用し、/target:metadata
スイッチとアドレスを渡すことで、WS-MetadataExchange または HTTP/GET 要求を使用してサービス メタデータを取得できます。 Svcutil.exe 指定したアドレスでメタデータをダウンロードし、ファイルをディスクに保存します。 Svcutil.exe は System.ServiceModel.Description.MetadataExchangeClient インスタンスを内部的に使用し、Svcutil.exe に入力として渡されるアドレスのスキームと名前が一致する IMetadataExchange エンドポイント構成を構成から読み込みます。
MetadataExchangeClient を使用したプログラムによるメタデータの取得
Windows Communication Foundation (WCF) は、WS-MetadataExchange や HTTP/GET 要求などの標準化されたプロトコルを使用してサービス メタデータを取得できます。 どちらのプロトコルも、 MetadataExchangeClient の種類でサポートされています。
System.ServiceModel.Description.MetadataExchangeClient型を使用してサービス メタデータを取得するには、メタデータ エンドポイントのアドレスとオプションのバインドを指定します。
System.ServiceModel.Description.MetadataExchangeClient インスタンスで使用されるバインディングには、MetadataExchangeBindings静的クラスの既定のバインド、ユーザー指定のバインド、またはIMetadataExchange
コントラクトのエンドポイント構成から読み込まれたバインディングのいずれかを指定できます。
System.ServiceModel.Description.MetadataExchangeClientでは、HttpWebRequest型を使用してメタデータへの HTTP URL 参照を解決することもできます。
既定では、 System.ServiceModel.Description.MetadataExchangeClient インスタンスは 1 つの ChannelFactory インスタンスに関連付けられます。 System.ServiceModel.ChannelFactory仮想メソッドをオーバーライドすることで、System.ServiceModel.Description.MetadataExchangeClientによって使用されるGetChannelFactory インスタンスを変更または置換できます。 同様に、HttpWebRequest仮想メソッドをオーバーライドすることで、System.ServiceModel.Description.MetadataExchangeClientによって使用されるMetadataExchangeClient.GetWebRequest インスタンスを変更または置換して、HTTP/GET 要求を行うことができます。
このセクションにて
方法: Svcutil.exe を使用してメタデータ ドキュメントをダウンロードする
Svcutil.exe を使用してメタデータ ドキュメントをダウンロードする方法を示します。
方法: MetadataResolver を使用してバインド メタデータを動的に取得する
System.ServiceModel.Description.MetadataResolverを使用して実行時にバインド メタデータを動的に取得する方法を示します。
方法: MetadataExchangeClient を使用してメタデータを取得する
System.ServiceModel.Description.MetadataExchangeClient クラスを使用してメタデータファイルをダウンロードし、System.ServiceModel.Description.MetadataSet オブジェクトを含むSystem.ServiceModel.Description.MetadataSection オブジェクトに格納する方法を示します。これにより、ファイルへの書き込みや他の用途に使用できます。