Esportazione di metadati personalizzati per un'estensione WCF
In Windows Communication Foundation (WCF), l'esportazione dei metadati è il processo utilizzato per descrivere gli endpoint di un servizio e quindi proiettarli in una rappresentazione parallela standardizzata che i client possono utilizzare allo scopo di comprendere come utilizzare 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'utilizzo dei tipi che esportano e importano metadati, siano essi personalizzati o forniti dal sistema, vedere Esportazione e importazione di metadati.
Cenni preliminari
Quando si pubblicano i metadati tramite il comportamento System.ServiceModel.Description.ServiceMetadataBehavior, il sistema analizza la descrizione System.ServiceModel.Description.ServiceDescription e quindi genera elementi XSD e WSDL (comprese le asserzioni di criteri) per tutti i contratti e le associazioni che WCF è in grado di supportare utilizzando attributi e associazioni forniti dal sistema. Tuttavia, l'esportazione degli elementi relativi agli attributi e alle associazioni aventi un comportamento personalizzato richiede un supporto specifico.
In questa sezione sono descritti gli argomenti seguenti:
Come implementare e utilizzare l'interfaccia System.ServiceModel.Description.IWsdlExportExtension che espone all'utente i dati da generare in WSDL prima di pubblicarli.
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 ulteriori informazioni sull'importazione di elementi WSDL e di asserzioni di criteri personalizzati, 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 ulteriori informazioni sull'aggiunta di comportamenti, 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:
Utilizzare il contesto WsdlContractConversionContext per modificare i metadati esportati tramite il metodo ExportContract.
Utilizzare il contesto WsdlEndpointConversionContext per modificare i metadati dell'endpoint esportati tramite il metodo ExportEndpoint.
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 ulteriori informazioni, vedere Procedura: esportare informazioni WSDL personalizzate 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 ulteriori informazioni, vedere Procedura: esportare asserzioni di criteri personalizzate.
Vedere anche
Attività
Procedura: esportare informazioni WSDL personalizzate
Procedura: esportare asserzioni di criteri personalizzate
Concetti
Importazione di metadati personalizzati per un'estensione WCF