MetadataResolver Classe

Definição

Recupera e importa metadados como ServiceEndpoint objetos.

public ref class MetadataResolver abstract sealed
public static class MetadataResolver
type MetadataResolver = class
Public Class MetadataResolver
Herança
MetadataResolver

Exemplos

O exemplo de código a seguir mostra o uso da MetadataResolver classe para retornar metadados como uma coleção de ServiceEndpoint objetos que são usados para se conectar a uma instância de serviço.

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

O exemplo de código a MetadataResolver seguir mostra o uso dos metadados para baixar e retornar como uma coleção de ServiceEndpoint objetos usando uma solicitação HTTP GET em vez de 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();
    }
}

Comentários

Use a MetadataResolver classe para importar rapidamente pontos de extremidade para um serviço de metadados. Essa classe baixa e converte metadados em ServiceEndpoint objetos. Para baixar metadados e processar essas informações como um System.ServiceModel.Description.MetadataSet, consulte System.ServiceModel.Description.MetadataExchangeClient.

Métodos

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

Inicia uma chamada assíncrona que resolve um endereço de metadados nos ServiceEndpoint objetos para os contratos especificados, usando o endereço especificado e o estado e o delegado assíncronos.

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

Inicia uma chamada assíncrona que resolve um endereço de metadados nos ServiceEndpoint objetos para os contratos especificados, usando o endereço especificado, MetadataExchangeCliento estado e o delegado assíncronos.

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

Inicia uma chamada assíncrona que resolve um endereço de metadados nos ServiceEndpoint objetos para os contratos especificados, usando o endereço, o valor, MetadataExchangeClientMode o estado assíncrono e o delegado especificados.

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

Inicia uma chamada assíncrona que resolve um endereço de metadados nos ServiceEndpoint objetos dos contratos especificados, usando o endereço especificado, MetadataExchangeCliento MetadataExchangeClientModeestado assíncrono e o delegado.

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

Inicia uma chamada assíncrona que resolve um endereço de metadados nos ServiceEndpoint objetos do contrato especificado usando o endereço especificado e o estado e o delegado assíncronos.

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

Inicia uma chamada assíncrona que resolve um endereço de metadados nos ServiceEndpoint objetos do contrato especificado, usando o endereço especificado, MetadataExchangeClientModeo estado assíncrono e o delegado.

EndResolve(IAsyncResult)

Conclui uma chamada assíncrona para resolver metadados em uma coleção de pontos de extremidade.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Resolve um endereço de metadados nos ServiceEndpoint objetos para os contratos especificados usando o endereço de metadados especificado e MetadataExchangeClient.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Resolve um endereço de metadados nos ServiceEndpoint objetos dos contratos especificados usando o endereço de metadados especificado.

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

Resolve um endereço de metadados nos ServiceEndpoint objetos para os contratos especificados usando o endereço, o modo de transferência e o cliente de transferência especificados.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Resolve um endereço de metadados nos ServiceEndpoint objetos para os contratos especificados usando o endereço e o modo de transferência especificados.

Resolve(Type, EndpointAddress)

Baixa e resolve um endereço de metadados em uma coleção de ServiceEndpoint objetos para um contrato especificado em um endereço especificado.

Resolve(Type, Uri, MetadataExchangeClientMode)

Resolve um endereço de metadados nos ServiceEndpoint objetos do contrato especificado usando o endereço e o modo de transferência especificados.

Aplica-se a