メタデータを取得する
メタデータの取得は、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.Description.MetadataExchangeClient によって使用される System.ServiceModel.ChannelFactory インスタンスは、GetChannelFactory 仮想メソッドを上書きすることによって変更または置換することができます。同様に、System.ServiceModel.Description.MetadataExchangeClient.GetWebRequest(System.Uri,System.String,System.String) 仮想メソッドをオーバーライドすることによって、HTTP/GET 要求を行うために System.ServiceModel.Description.MetadataExchangeClient が使用する HttpWebRequest インスタンスを変更または置換できます。
このセクションの内容
- 方法 : Svcutil.exe を使用してメタデータ ドキュメントをダウンロードする
Svcutil.exe を使用して、メタデータ ドキュメントをダウンロードする方法を示します。
- 方法 : MetadataResolver を使用してバインディング メタデータを動的に取得する
System.ServiceModel.Description.MetadataResolver を使用して、実行時に動的にバインディング メタデータを取得する方法を示します。
- 方法 : MetadataExchangeClient を使用してメタデータを取得する
System.ServiceModel.Description.MetadataExchangeClient クラスを使用して、System.ServiceModel.Description.MetadataSection オブジェクトを含む System.ServiceModel.Description.MetadataSet オブジェクトにメタデータ ファイルをダウンロードし、ファイルに書き込んだり、他の目的に使用したりする方法を示します。