Procedura: esportare asserzioni di criteri personalizzate

Le asserzioni di criteri descrivono le funzionalità e i requisiti di un endpoint del servizio. Le applicazioni del servizio possono utilizzare asserzioni di criteri personalizzate nei metadati del servizio per comunicare informazioni sulla personalizzazione di endpoint, associazione e contratto all'applicazione client. È possibile utilizzare Windows Communication Foundation (WCF) per esportare asserzioni in espressioni di criteri collegate alle associazioni WSDL nell'endpoint, nell'operazione o negli oggetti del messaggio, a seconda delle funzionalità o dei requisiti da comunicare.

Le asserzioni di criteri personalizzate vengono esportate mediante l'implementazione dell'interfaccia System.ServiceModel.Description.IPolicyExportExtension in un elemento System.ServiceModel.Channels.BindingElement, inserendo l'elemento dell'associazione direttamente nell'associazione dell'endpoint del servizio o registrando l'elemento dell'associazione nel file di configurazione dell'applicazione. È necessario che l'implementazione dell'esportazione del criterio aggiunga l'asserzione di criteri personalizzata come istanza System.Xml.XmlElement all'elemento System.ServiceModel.Description.PolicyAssertionCollection appropriato nell'elemento System.ServiceModel.Description.PolicyConversionContext passato al metodo ExportPolicy.

È inoltre necessario controllare la proprietà PolicyVersion della classe WsdlExporter ed esportare espressioni del criterio nidificate e attributi dello schema dei criteri nello spazio dei nomi corretto in base alla versione del criterio specificata.

Per importare asserzioni di criteri personalizzate, vedere System.ServiceModel.Description.IPolicyImportExtension e Procedura: importare asserzioni di criteri personalizzati.

Per esportare asserzioni di criteri personalizzate

  1. Implementare l'interfaccia System.ServiceModel.Description.IPolicyExportExtension in una classe System.ServiceModel.Channels.BindingElement. Nell'esempio di codice seguente viene illustrata l'implementazione di un'asserzione di criteri personalizzata a livello di associazione.

  2. Inserire l'elemento di associazione nell'associazione dell'endpoint a livello di programmazione o utilizzando un file di configurazione dell'applicazione. Vedere le procedure seguenti.

Per inserire un elemento di associazione utilizzando un file di configurazione dell'applicazione

  1. Implementare System.ServiceModel.Configuration.BindingElementExtensionElement per l'elemento di associazione dell'asserzione di criteri personalizzata.

  2. Aggiungere l'estensione dell'elemento di associazione al file di configurazione utilizzando l'elemento <bindingElementExtensions>.

  3. Compilare un'associazione personalizzata utilizzando System.ServiceModel.Channels.CustomBinding.

Per inserire un elemento di associazione a livello di programmazione

  1. Creare un nuovo elemento System.ServiceModel.Channels.BindingElement e aggiungerlo a System.ServiceModel.Channels.CustomBinding.

  2. Aggiungere l'associazione personalizzata di cui al passaggio 1 a un endpoint nuovo e aggiungere tale nuovo endpoint del servizio a System.ServiceModel.ServiceHost chiamando il metodo AddServiceEndpoint.

  3. Aprire l'elemento ServiceHost. Nell'esempio di codice seguente sono mostrati la creazione di un'associazione personalizzata e l'inserimento degli elementi dell'associazione a livello di programmazione.

Vedere anche

Attività

Procedura: importare asserzioni di criteri personalizzati

Riferimenti

IPolicyImportExtension
IPolicyExportExtension