Partilhar via


Recuperando metadados

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

Recuperando metadados da linha de comando usando o Svcutil.exe

Você pode recuperar metadados de serviço através de solicitações com WS-MetadataExchange ou HTTP/GET utilizando a ferramenta ServiceModel Metadata Utility Tool (Svcutil.exe), passando o switch /target:metadata e um endereço. Svcutil.exe baixa os metadados no endereço especificado e salva o arquivo no disco. Svcutil.exe usa internamente uma System.ServiceModel.Description.MetadataExchangeClient instância e carrega da configuração a IMetadataExchange configuração do ponto de extremidade com o nome que corresponde ao esquema do endereço passado para Svcutil.exe como entrada.

Recuperando metadados programaticamente usando o MetadataExchangeClient

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

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

Na presente seção

Como: Usar Svcutil.exe para descarregar documentos de metadados Demonstra como usar Svcutil.exe para descarregar documentos de metadados.

Como: Usar o MetadataResolver para obter metadados de ligação dinâmica Demonstra como usar o System.ServiceModel.Description.MetadataResolver para obter metadados de ligação dinamicamente em tempo de execução.

Como: Usar MetadataExchangeClient para Recuperar Metadados Demonstra como usar a System.ServiceModel.Description.MetadataExchangeClient classe para descarregar ficheiros de metadados para um System.ServiceModel.Description.MetadataSet objeto que contenha System.ServiceModel.Description.MetadataSection objetos para escrever em ficheiros ou para outros usos.

Ver também