次の方法で共有


メタデータを取得する

メタデータの取得は、WS-MetadataExchange (MEX) メタデータ エンドポイントや HTTP/GET メタデータ エンドポイントなどのメタデータ エンドポイントに対してメタデータを要求して取得する処理です。

Svcutil.exe を使用した、コマンドラインからのメタデータの取得

ServiceModel Metadata Utility Tool (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 インスタンスを変更または置換できます。

このセクションの内容

関連項目

リファレンス

MetadataExchangeClient