次の方法で共有


MetadataResolver クラス

定義

メタデータを取得し、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 を参照してください。

メソッド

BeginResolve(IEnumerable<ContractDescription>, EndpointAddress, AsyncCallback, Object)

指定したアドレス、非同期状態、および非同期デリゲートを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの ServiceEndpoint オブジェクトに解決する非同期呼び出しを開始します。

BeginResolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient, AsyncCallback, Object)

指定したアドレス、ServiceEndpoint、非同期状態、および非同期デリゲートを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの MetadataExchangeClient オブジェクトに解決する非同期呼び出しを開始します。

BeginResolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, AsyncCallback, Object)

指定したアドレス、ServiceEndpoint 値、非同期状態、および非同期デリゲートを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの MetadataExchangeClientMode オブジェクトに解決する非同期呼び出しを開始します。

BeginResolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient, AsyncCallback, Object)

指定したアドレス、ServiceEndpointMetadataExchangeClient、非同期状態、およびデリゲートを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの MetadataExchangeClientMode オブジェクトに解決する非同期呼び出しを開始します。

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

指定したアドレス、非同期状態、および非同期デリゲートを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの ServiceEndpoint オブジェクトに解決する非同期呼び出しを開始します。

BeginResolve(Type, Uri, MetadataExchangeClientMode, AsyncCallback, Object)

指定したアドレス、ServiceEndpoint、非同期状態、および非同期デリゲートを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの MetadataExchangeClientMode オブジェクトに解決する非同期呼び出しを開始します。

EndResolve(IAsyncResult)

メタデータをエンドポイントのコレクションに解決する非同期呼び出しを完了します。

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

指定したメタデータ アドレスを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの ServiceEndpoint オブジェクトに解決します。

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

指定したメタデータ アドレスと ServiceEndpoint を使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの MetadataExchangeClient オブジェクトに解決します。

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

指定したアドレスと転送モードを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの ServiceEndpoint オブジェクトに解決します。

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)

指定したアドレス、転送モード、および転送クライアントを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの ServiceEndpoint オブジェクトに解決します。

Resolve(Type, EndpointAddress)

指定したアドレスを使用して、指定したコントラクトのメタデータ アドレスをダウンロードし、そのコントラクトの ServiceEndpoint オブジェクトのコレクションに解決します。

Resolve(Type, Uri, MetadataExchangeClientMode)

指定したアドレスと転送モードを使用して、指定したコントラクトのメタデータ アドレスをそのコントラクトの ServiceEndpoint オブジェクトに解決します。

適用対象