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, MetadataExchangeClient)

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

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

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

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

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

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

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

Resolve(Type, EndpointAddress)

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

Resolve(Type, Uri, MetadataExchangeClientMode)

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

適用対象