Como: Usar MetadataResolver para obter metadados de vinculação dinamicamente
Este tópico mostra como usar a classe para obter dinamicamente metadados MetadataResolver de vinculação.
Para obter dinamicamente metadados de vinculação
Crie um EndpointAddress objeto com o endereço do ponto de extremidade de metadados.
EndpointAddress metaAddress = new EndpointAddress(new Uri("http://localhost:8080/SampleService/mex"));
Chamada Resolve(Type, EndpointAddress), que passa o tipo de serviço e o endereço do ponto de extremidade de metadados. Isso retorna uma coleção de pontos de extremidade que implementam o contrato especificado. Apenas informações de vinculação são importadas dos metadados; As informações contratuais não são importadas. Em vez disso, utiliza-se o contrato de fornecimento.
ServiceEndpointCollection endpoints = MetadataResolver.Resolve(typeof(SampleServiceClient),metaAddress);
Em seguida, você pode iterar através da coleção de pontos de extremidade de serviço para extrair as informações de vinculação necessárias. O código a seguir itera pelos pontos de extremidade, cria um objeto de cliente de serviço que passa a associação e o endereço associados ao ponto de extremidade atual e, em seguida, chama um método no serviço.
foreach (ServiceEndpoint point in endpoints) { if (point != null) { // Create a new wcfClient using retrieved endpoints. using (wcfClient = new SampleServiceClient(point.Binding, point.Address)) { Console.WriteLine( wcfClient.SampleMethod("Client used the " + point.Address.ToString() + " address.")); } } }