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 Strumento ServiceModel Metadata Utility Tool (Svcutil.exe) 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
InWindows Communication Foundation (WCF) è 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 della 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 System.ServiceModel.Description.MetadataExchangeClient è collegata a una sola istanza ChannelFactory. È possibile modificare o sostituire l'istanza System.ServiceModel.ChannelFactory utilizzata da System.ServiceModel.Description.MetadataExchangeClient eseguendo l'override del metodo virtuale GetChannelFactory. Analogamente, è possibile modificare o sostituire l'istanza HttpWebRequest utilizzata da System.ServiceModel.Description.MetadataExchangeClient per le richieste HTTP/GET eseguendo l'override del metodo virtuale System.ServiceModel.Description.MetadataExchangeClient.GetWebRequest(System.Uri,System.String,System.String).
Argomenti della sezione
- Procedura: utilizzare Svcutil.exe per scaricare documenti di metadati
Viene illustrato come utilizzare Svcutil.exe per scaricare documenti di metadati
- Procedura: utilizzare 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 a runtime.
- Procedura: utilizzare MetadataExchangeClient per il recupero di 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.