Compartilhar via


IWsdlImportExtension Interface

Definição

Implementa e anexa a um objeto WsdlImporter para controlar como o importador mapeia blocos de WSDL (linguagem WSDL) para aqueles que são de um objeto ServiceDescription.

public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
Derivado

Exemplos

O exemplo de código a seguir mostra o uso para IWsdlImportExtension adicionar um System.ServiceModel.Description.IServiceContractGenerationExtension e um System.ServiceModel.Description.IOperationContractGenerationExtension (o WsdlDocumentationImporter, neste caso) para modificar o código do cliente WCF gerado no nível de interface e operação.

  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));
              }
          }
      }
  }

O exemplo de código a seguir mostra como configurar o sistema de metadados do cliente para usar o personalizado IWsdlImportExtension de um arquivo de configuração de aplicativo.

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

Comentários

Implemente a IWsdlImportExtension interface para controlar o mapeamento entre WSDL e ContractDescription ServiceEndpoint objetos, especialmente ao ler extensões personalizadas do WSDL para modificar suas informações de contrato ou ponto de extremidade. Em seguida, anexe seu objeto personalizado IWsdlImportExtension a um WsdlImporter programaticamente ou usando um arquivo de configuração de aplicativo. Você também pode anexar seu objeto personalizado IWsdlImportExtension ao interno WsdlImporter usado pela ServiceModel Metadata Utility Tool (Svcutil.exe) usando um arquivo de configuração de aplicativo.

O ImportContract método é chamado para importar um contrato.

Use o BeforeImport método para modificar os metadados que são então importados ServiceEndpoint e ContractDescription objetos.

Métodos

BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>)

Chamado antes da importação de documentos de metadados.

ImportContract(WsdlImporter, WsdlContractConversionContext)

Chamado ao importar um contrato.

ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext)

Chamado ao importar um ponto de extremidade.

Aplica-se a