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 seguinte mostra a utilização da MetadataResolver classe para devolver metadados como uma coleção de ServiceEndpoint objetos que são depois usados para se ligar 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 seguinte mostra o uso do MetadataResolver para descarregar e devolver metadados como uma coleção de ServiceEndpoint objetos usando um pedido 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();
    }
}

Observações

Use a MetadataResolver classe para importar rapidamente os endpoints de um serviço a partir de metadados. Esta classe descarrega e converte metadados em ServiceEndpoint objetos. Para descarregar metadados e processar essa informação como , System.ServiceModel.Description.MetadataSetveja System.ServiceModel.Description.MetadataExchangeClient.

Métodos

Name 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 assíncrono e delegar.

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, MetadataExchangeClient, estado assíncrono e delegar.

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, MetadataExchangeClientMode valor, estado assíncrono e delegar especificados.

BeginResolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, 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, MetadataExchangeClient, MetadataExchangeClientMode, estado assíncrono e delegar.

BeginResolve(Type, EndpointAddress, AsyncCallback, Object)

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

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, MetadataExchangeClientMode, estado assíncrono e delegar.

EndResolve(IAsyncResult)

Conclui uma chamada assíncrona para resolver metadados numa coleção de endpoints.

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 dos contratos especificados usando o endereço, modo de transferência e cliente de transferência especificados.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

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

Resolve(Type, EndpointAddress)

Descarrega e resolve um endereço de metadados numa coleção de ServiceEndpoint objetos para um contrato especificado num endereço especificado.

Resolve(Type, Uri, MetadataExchangeClientMode)

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

Aplica-se a