Condividi tramite


Esportazione di metadati personalizzati per un'estensione WCF

In Windows Communication Foundation (WCF), l'esportazione dei metadati è il processo usato per descrivere gli endpoint di servizio e quindi proiettarli in una rappresentazione parallela e standardizzata che i client possono usare per comprendere come usare il servizio. I metadati personalizzati sono costituiti da elementi XML non esportabili mediante le unità di esportazione dei metadati forniti dal sistema. Questi metadati comprendono in genere elementi WSDL personalizzati di elementi di comportamenti e associazioni definiti dall'utente nonché asserzioni di criteri personalizzate relative alle funzionalità e ai requisiti di associazioni e contratti.

Questa sezione descrive come esportare elementi WSDL o asserzioni di criteri personalizzati, senza tuttavia trattare il processo di esportazione in sé. Per ulteriori informazioni sull'uso dei tipi che esportano e importano metadati, siano essi personalizzati o forniti dal sistema, vedere Esportazione e importazione di metadati.

Panoramica

Quando si pubblicano i metadati tramite il comportamento System.ServiceModel.Description.ServiceMetadataBehavior, il sistema System.ServiceModel.Description.ServiceDescription analizza la descrizione e quindi genera elementi XSD e WSDL (comprese le asserzioni di criteri) per tutti i contratti e i binding che WCF è in grado di supportare usando attributi e binding forniti dal sistema. Tuttavia, l'esportazione degli elementi relativi agli attributi e alle associazioni aventi un comportamento personalizzato richiede un supporto specifico.

Contenuto della sezione sono descritti gli argomenti seguenti:

  1. Come implementare e utilizzare l'interfaccia System.ServiceModel.Description.IWsdlExportExtension che espone all'utente i dati da generare in WSDL prima di pubblicarli.

  2. Come implementare e utilizzare l'interfaccia System.ServiceModel.Description.IPolicyExportExtension che espone all'utente i dati dei criteri prima di esportare le asserzioni di criteri nei dati WSDL.

Per altre informazioni sull'importazione di asserzioni WSDL e di criteri personalizzate, vedere Importazione di metadati personalizzati per un'estensione WCF.

Esportazione di elementi WSDL personalizzati

Implementare l'interfaccia IWsdlExportExtension in un comportamento di operazione, contratto, endpoint o elemento di associazione (rispettivamente IOperationBehavior, IContractBehavior, IEndpointBehavior o System.ServiceModel.Channels.BindingElement) e aggiungere i comportamenti o gli elementi di associazione nella descrizione del servizio da esportare. Per altre informazioni sui comportamenti di inserimento, vedere Configurazione ed estensione del runtime con i comportamenti. L'interfaccia IWsdlExportExtension viene chiamata per ogni endpoint, che quindi esporta il contratto a meno che non sia stato già esportato. A seconda delle proprie esigenze, è possibile ricorrere a uno dei due processi di esportazione:

Il metodo ExportContract viene chiamato in tutte le implementazioni dell'interfaccia IWsdlExportExtension all'interno dell'istanza della descrizione System.ServiceModel.Description.ContractDescription da esportare. Il metodo ExportEndpoint viene chiamato in tutte le implementazioni dell'interfaccia IWsdlExportExtension all'interno dell'istanza della descrizione System.ServiceModel.Description.ServiceEndpoint da esportare.

Per altre informazioni, vedere Procedura: Esportare WSDL personalizzati e l'esempio Pubblicazione WSDL personalizzata.

Esportazione di asserzioni di criteri personalizzati

Per scrivere asserzioni di criteri personalizzate relative al supporto delle associazioni e alle funzionalità di contratto nel codice WSDL, implementare l'interfaccia IPolicyExportExtension in un elemento BindingElement e aggiungere l'elemento di associazione all'associazione. L'interfaccia, IPolicyExportExtension dopo essere stata chiamata una volta durante l'esportazione dell'elemento di associazione implementato contenuto in un'associazione, passa il contesto PolicyConversionContext al metodo ExportPolicy. È possibile utilizzare i metodi dell'istanza del contesto PolicyConversionContext per aggiungere elementi alle asserzioni di criteri allegate ai soggetti di messaggio, operazione o endpoint dell'associazione WSDL.

Per altre informazioni, vedere Procedura: esportare asserzioni di criteri personalizzate.

Vedi anche