IWsdlImportExtension Interfaccia

Definizione

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 WsdlDocumentationImportercodice 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.

Si applica a