Partilhar via


MetadataResolver Classe

Definição

Recupera e importa metadados como objetos ServiceEndpoint.

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 seguir mostra o uso do MetadataResolver para baixar e retornar metadados 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

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

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

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

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

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

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

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

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

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

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

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

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

EndResolve(IAsyncResult)

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

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

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

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

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

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

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

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

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

Resolve(Type, EndpointAddress)

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

Resolve(Type, Uri, MetadataExchangeClientMode)

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

Aplica-se a