Compartir a través de


IWsdlImportExtension Interfaz

Definición

Se implementa y asocia a un objeto WsdlImporter para controlar cómo el importador asigna las partes del Lenguaje de descripción de servicios Web (WSDL) a las de un objeto ServiceDescription.

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

Ejemplos

En el ejemplo de código siguiente se muestra el uso de IWsdlImportExtension para agregar y System.ServiceModel.Description.IServiceContractGenerationExtension un System.ServiceModel.Description.IOperationContractGenerationExtension objeto (, WsdlDocumentationImporteren este caso) para modificar el código de cliente WCF generado en el nivel de interfaz y operación.

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

El ejemplo de código siguiente muestra cómo configurar el sistema de metadatos de cliente para utilizar la IWsdlImportExtension personalizada de un archivo de configuración de la aplicación.

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

Comentarios

Implemente la interfaz IWsdlImportExtension para controlar la asignación entre WSDL, ServiceEndpoint y los objetos ContractDescription, sobre todo al leer las extensiones WSDL personalizadas para modificar su contrato o información de extremo. A continuación, asocie su objeto IWsdlImportExtension personalizado a un WsdlImporter mediante programación o utilizando un archivo de configuración de la aplicación. También puede adjuntar el objeto personalizado IWsdlImportExtension a la herramienta de utilidad de metadatos ServiceModel (Svcutil.exe) que WsdlImporter usa un archivo de configuración de la aplicación.

Se llama al método ImportContract para importar un contrato.

Utilice el método BeforeImport para modificar los metadatos que, a continuación, se importan a ServiceEndpoint y los objetos ContractDescription.

Métodos

BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>)

Se llama antes de importar los documentos de metadatos.

ImportContract(WsdlImporter, WsdlContractConversionContext)

Se llama al importar un contrato.

ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext)

Se llama al importar un punto de conexión.

Se aplica a