IWsdlImportExtension Interfaccia

Definizione

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.

Si applica a