Condividi tramite


Recupero dei metadati

Il recupero dei metadati è il processo di richiesta e di recupero dei metadati da un endpoint di metadati, ad esempio un endpoint di metadati WS-MetadataExchange (MEX) o un endpoint di metadati HTTP/GET.

Recupero dei metadati dalla riga di comando utilizzando Svcutil.exe

È possibile recuperare i metadati del servizio utilizzando richieste WS-MetadataExchange o HTTP/GET mediante lo strumento ServiceModel Metadata Utility Tool (Svcutil.exe) e passando l'opzione /target:metadata e un indirizzo. Svcutil.exe scarica i metadati all'indirizzo specificato e salva il file su disco. Lo strumento utilizza internamente un'istanza System.ServiceModel.Description.MetadataExchangeClient e carica dalla configurazione la configurazione dell'endpoint IMetadataExchange il cui nome corrisponde allo schema dell'indirizzo passato a Svcutil.exe come input.

Recupero dei metadati a livello di codice utilizzando MetadataExchangeClient

In WCF (Windows Communication Foundation) è possibile recuperare i metadati del servizio utilizzando protocolli standard, ad esempio richieste WS-MetadataExchange e HTTP/GET. Entrambi questi protocolli sono supportati dal tipo MetadataExchangeClient. Per recuperare i metadati del servizio, utilizzare il tipo System.ServiceModel.Description.MetadataExchangeClient fornendo un indirizzo per l'endpoint dei metadati e un'associazione facoltativa. L'associazione utilizzata da un'istanza System.ServiceModel.Description.MetadataExchangeClient può essere una delle associazioni predefinite dalla classe statica MetadataExchangeBindings, un'associazione fornita dall'utente o un'associazione caricata dalla configurazione dell'endpoint per il contratto IMetadataExchange. System.ServiceModel.Description.MetadataExchangeClient può inoltre risolvere i riferimenti dell'URL HTTP ai metadati utilizzando il tipo HttpWebRequest.

Per impostazione predefinita, un'istanza di System.ServiceModel.Description.MetadataExchangeClient è collegata a una sola istanza di ChannelFactory. È possibile modificare o sostituire l'istanza di System.ServiceModel.ChannelFactory utilizzata da System.ServiceModel.Description.MetadataExchangeClient eseguendo l'override del metodo virtuale GetChannelFactory. Analogamente, è possibile modificare o sostituire l'istanza di HttpWebRequest utilizzata da System.ServiceModel.Description.MetadataExchangeClient per le richieste HTTP/GET eseguendo l'override del metodo virtuale MetadataExchangeClient.GetWebRequest.

In questa sezione

Procedura: Usare Svcutil.exe per scaricare documenti di metadati
Viene illustrato come utilizzare Svcutil.exe per scaricare documenti di metadati

Procedura: Usare la classe MetadataResolver per ottenere dinamicamente i metadati di associazione
Viene illustrato come utilizzare System.ServiceModel.Description.MetadataResolver per ottenere dinamicamente i metadati di associazione in fase di esecuzione.

Procedura: Usare MetadataExchangeClient per recuperare metadati
Viene illustrato come utilizzare la classe System.ServiceModel.Description.MetadataExchangeClient per scaricare file di metadati in un oggetto System.ServiceModel.Description.MetadataSet contenente oggetti System.ServiceModel.Description.MetadataSection per la scrittura nei file o per altri utilizzi.

Vedi anche