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();
    }
}

下面的代码示例演示如何使用 MetadataResolver 下载和返回作为 ServiceEndpoint 对象的集合的元数据,这些对象使用 HTTP GET 请求而不是 WS-Transfer。

// 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 对象。

适用于