Compartilhar via


Recuperando metadados

A recuperação de metadados é o processo de solicitação e recuperação de metadados de um ponto de extremidade de metadados, como um ponto de extremidade de metadados de WS-MetadataExchange (MEX) ou um ponto de extremidade de metadados HTTP/GET.

Recuperando metadados da linha de comando usando Svcutil.exe

Você pode recuperar metadados de serviço usando solicitações WS-MetadataExchange ou HTTP/GET com a Ferramenta do Utilitário de Metadados ServiceModel (Svcutil.exe) e passando o botão /target:metadata e um endereçõ. Svcutil.exe baixa os metadados no endereço especificado e salva o arquivo no disco. Svcutil.exe usa uma instância System.ServiceModel.Description.MetadataExchangeClient internamente e carrega a configuração do ponto de extremidade IMetadataExchange da configuração, cujo nome corresponde ao esquema do endereço passado para Svcutil.exe como entrada.

Recuperando metadados programaticamente usando o MetadataExchangeClient

O WCF (Windows Communication Foundation) pode recuperar metadados de serviço usando protocolos padronizados, como WS-MetadataExchange e solicitações HTTP/GET. Ambos os protocolos são compatíveis com o tipo MetadataExchangeClient. Você recupera metadados de serviço usando o tipo System.ServiceModel.Description.MetadataExchangeClient fornecendo um endereço para o ponto de extremidade de metadados e uma associação opcional. A associação usada por uma instância System.ServiceModel.Description.MetadataExchangeClient pode ser uma das associações padrão da classe estática MetadataExchangeBindings, uma associação fornecida pelo usuário ou uma associação carregada de uma configuração de ponto de extremidade para o contrato IMetadataExchange. O System.ServiceModel.Description.MetadataExchangeClient também pode resolver referências de URL HTTP para metadados usando o tipo HttpWebRequest.

Por padrão, uma instância System.ServiceModel.Description.MetadataExchangeClient está vinculada a uma única instância ChannelFactory. Você pode alterar ou substituir a instância System.ServiceModel.ChannelFactory usada por um System.ServiceModel.Description.MetadataExchangeClient substituindo o método virtual GetChannelFactory. Da mesma forma, você pode alterar ou substituir a instância HttpWebRequest usada por um System.ServiceModel.Description.MetadataExchangeClient para fazer solicitações HTTP/GET substituindo o método virtual MetadataExchangeClient.GetWebRequest.

Nesta seção

Como: usar Svcutil.exe para baixar documentos de metadados
Demonstra como usar o svcutil.exe para baixar os documentos de metadados.

Como: usar MetadataResolver para obter metadados de associação dinamicamente
Demonstra como usar o System.ServiceModel.Description.MetadataResolver para obter metadados de vinculação de dados dinamicamente no tempo de execução.

Como: usar MetadataExchangeClient para recuperar metadados
Demonstra como usar a classe System.ServiceModel.Description.MetadataExchangeClient para baixar arquivos de metadados em um objeto System.ServiceModel.Description.MetadataSet que contém objetos System.ServiceModel.Description.MetadataSection para gravar em arquivos ou para outros usos.

Confira também