MetadataResolver Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |