IWsdlImportExtension Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Implementare e allegare a un oggetto WsdlImporter per controllare come l'utilità di importazione esegue il mapping delle parti di linguaggio di descrizione dei servizi Web (WSDL, Web Services Description Language) a quelli di un oggetto ServiceDescription.
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- Derivato
Esempio
Nell'esempio di codice seguente viene illustrato l'uso di per aggiungere un System.ServiceModel.Description.IServiceContractGenerationExtension oggetto e un System.ServiceModel.Description.IOperationContractGenerationExtension (in questo caso) per modificare il WsdlDocumentationImporter
codice client WCF generato a livello di IWsdlImportExtension interfaccia e di operazione.
public void ImportContract(WsdlImporter importer, WsdlContractConversionContext context)
{
Console.Write("ImportContract");
// Contract Documentation
if (context.WsdlPortType.Documentation != null)
{
context.Contract.Behaviors.Add(new WsdlDocumentationImporter(context.WsdlPortType.Documentation));
}
// Operation Documentation
foreach (Operation operation in context.WsdlPortType.Operations)
{
if (operation.Documentation != null)
{
OperationDescription operationDescription = context.Contract.Operations.Find(operation.Name);
if (operationDescription != null)
{
operationDescription.Behaviors.Add(new WsdlDocumentationImporter(operation.Documentation));
}
}
}
}
Nell'esempio di codice seguente viene illustrato come configurare il sistema metadati client per utilizzare l'interfaccia IWsdlImportExtension personalizzata da un file di configurazione dell'applicazione.
<system.serviceModel>
<client>
<endpoint
address="http://localhost:8000/Fibonacci"
binding="wsHttpBinding"
contract="IFibonacci"
/>
<metadata>
<wsdlImporters>
<extension type="Microsoft.WCF.Documentation.WsdlDocumentationImporter, WsdlDocumentation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</wsdlImporters>
</metadata>
</client>
</system.serviceModel>
Commenti
Implementare l'interfaccia IWsdlImportExtension per controllare il mapping tra WSDL e oggetti ServiceEndpoint e ContractDescription, in particolare durante la lettura di estensioni WSDL personalizzate per modificare le informazioni relative al contratto o all'endpoint. Allegare quindi l'oggetto IWsdlImportExtension personalizzato a una classe WsdlImporter a livello di programmazione o utilizzando un file di configurazione dell'applicazione. È anche possibile collegare l'oggetto personalizzato IWsdlImportExtension all'oggetto interno WsdlImporter usato dallo strumento utilità metadati ServiceModel (Svcutil.exe) usando un file di configurazione dell'applicazione.
Il metodo ImportContract viene chiamato per importare un contratto.
Utilizzare il metodo BeforeImport per modificare i metadati che vengono quindi importati negli oggetti ServiceEndpoint e ContractDescription.
Metodi
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>) |
Chiamato prima di importare documenti di metadati. |
ImportContract(WsdlImporter, WsdlContractConversionContext) |
Chiamato durante l'importazione di un contratto. |
ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext) |
Chiamato durante l'importazione di un endpoint. |