MetadataResolver クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
メタデータを取得し、ServiceEndpoint オブジェクトとしてインポートします。
public ref class MetadataResolver abstract sealed
public static class MetadataResolver
type MetadataResolver = class
Public Class MetadataResolver
- 継承
-
MetadataResolver
例
MetadataResolver クラスを使用して、サービス インスタンスに接続するために使用される ServiceEndpoint オブジェクトのコレクションとしてメタデータを返す方法を、次のコード例に示します。
// Get the endpoints for such a service
ServiceEndpointCollection endpoints = MetadataResolver.Resolve(typeof(SampleServiceClient), metaAddress);
Console.WriteLine("Trying all available WS-Transfer metadata endpoints...");
foreach (ServiceEndpoint point in endpoints)
{
if (point != null)
{
// Create a new wcfClient using retrieved endpoints.
wcfClient = new SampleServiceClient(point.Binding, point.Address);
Console.WriteLine(
wcfClient.SampleMethod("Client used the "
+ point.Address.ToString()
+ " address.")
);
wcfClient.Close();
}
}
WS-Transfer ではなく HTTP GET 要求で、メタデータをダウンロードし、それを MetadataResolver オブジェクトのコレクションとして返す ServiceEndpoint の使用方法を次のコード例に示します。
// Get the endpoints for such a service using Http/Get request
endpoints = MetadataResolver.Resolve(typeof(SampleServiceClient), httpGetMetaAddress.Uri, MetadataExchangeClientMode.HttpGet);
Client.WriteParameters(endpoints);
ISampleService serviceChannel;
Console.WriteLine(
"\r\nTrying all endpoints from HTTP/Get and with direct service channels...");
foreach (ServiceEndpoint point in endpoints)
{
if (point != null)
{
ChannelFactory<ISampleService> factory = new ChannelFactory<ISampleService>(point.Binding);
factory.Endpoint.Address = point.Address;
serviceChannel = factory.CreateChannel();
Console.WriteLine("Client used the " + point.Address.ToString() + " address.");
Console.WriteLine(
serviceChannel.SampleMethod(
"Client used the " + point.Address.ToString() + " address."
)
);
factory.Close();
}
}
注釈
MetadataResolver クラスを使用して、メタデータからサービスのエンドポイントをすばやくインポートします。 このクラスはメタデータをダウンロードし、ServiceEndpoint オブジェクトに変換します。 メタデータをダウンロードしてその情報を System.ServiceModel.Description.MetadataSet として処理する方法については、System.ServiceModel.Description.MetadataExchangeClient を参照してください。