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 collegare a un WsdlImporter oggetto per controllare il modo in cui l'utilità di importazione esegue il mapping delle parti WSDL (Web Services Description Language) a quelle di un ServiceDescription oggetto .
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 IWsdlImportExtension per aggiungere un System.ServiceModel.Description.IServiceContractGenerationExtension e un System.ServiceModel.Description.IOperationContractGenerationExtension oggetto ( WsdlDocumentationImporterin questo caso , in questo caso) per modificare il codice client WCF generato a livello di interfaccia e 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 di metadati client per l'uso dell'oggetto personalizzato IWsdlImportExtension 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 ServiceEndpointContractDescription oggetti, soprattutto quando si leggono estensioni WSDL personalizzate per modificare le informazioni sul contratto o sull'endpoint. Collegare quindi l'oggetto personalizzato a un oggetto IWsdlImportExtension a WsdlImporter livello di codice o usando 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 ImportContract metodo viene chiamato per importare un contratto.
Utilizzare il BeforeImport metodo per modificare i metadati che vengono quindi importati in ServiceEndpoint oggetti e ContractDescription .
Metodi
| Nome | Descrizione |
|---|---|
| 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. |