IWsdlImportExtension Interfejs

Definicja

Zaimplementuj i Dołącz do WsdlImporter obiektu, aby kontrolować sposób, w jaki importer mapuje składniki Web Services Description Language (WSDL) do tych ServiceDescription obiektów.Implement and attach to a WsdlImporter object to control how the importer maps Web Services Description Language (WSDL) parts to those of a ServiceDescription object.

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

Przykłady

Poniższy przykład kodu pokazuje, IWsdlImportExtension jak używać do dodawania System.ServiceModel.Description.IServiceContractGenerationExtension a System.ServiceModel.Description.IOperationContractGenerationExtension ( WsdlDocumentationImporter w tym przypadku) do modyfikacji wygenerowanego kodu klienta WCF na poziomie interfejsu i operacji.The following code example shows the use of IWsdlImportExtension to add an System.ServiceModel.Description.IServiceContractGenerationExtension and an System.ServiceModel.Description.IOperationContractGenerationExtension (the WsdlDocumentationImporter, in this case) to modify generated WCF client code at the interface and operation level.

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

Poniższy przykład kodu przedstawia sposób konfigurowania systemu metadanych klienta do używania niestandardowego IWsdlImportExtension z pliku konfiguracyjnego aplikacji.The following code example shows how to configure the client metadata system to use the custom IWsdlImportExtension from an application configuration file.

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

Uwagi

Zaimplementuj IWsdlImportExtension interfejs, aby kontrolować mapowanie między elementami WSDL i ServiceEndpoint i ContractDescription obiektami, szczególnie w przypadku odczytywania niestandardowych rozszerzeń WSDL w celu modyfikowania informacji o kontrakcie lub punkcie końcowym.Implement the IWsdlImportExtension interface to control the mapping between WSDL and ServiceEndpoint and ContractDescription objects, especially when reading custom WSDL extensions to modify your contract or endpoint information. Następnie Dołącz obiekt niestandardowy IWsdlImportExtension do programu WsdlImporter programowo lub za pomocą pliku konfiguracji aplikacji.Then attach your custom IWsdlImportExtension object to a WsdlImporter either programmatically or by using an application configuration file. Możesz również dołączyć IWsdlImportExtension obiekt niestandardowy do wewnętrznego WsdlImporter użytku w narzędziu narzędzia metadanych ServiceModel (Svcutil.exe) za pomocą pliku konfiguracji aplikacji.You can also attach your custom IWsdlImportExtension object to the internal WsdlImporter used by the ServiceModel Metadata Utility Tool (Svcutil.exe) using an application configuration file.

ImportContractMetoda jest wywoływana w celu zaimportowania kontraktu.The ImportContract method is called to import a contract.

Użyj BeforeImport metody, aby zmodyfikować metadane, które zostaną następnie zaimportowane ServiceEndpoint do ContractDescription obiektów i.Use the BeforeImport method to modify the metadata that is then imported into ServiceEndpoint and ContractDescription objects.

Metody

BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>)

Wywoływana przed zaimportowaniem dokumentów metadanych.Called prior to importing metadata documents.

ImportContract(WsdlImporter, WsdlContractConversionContext)

Wywoływana podczas importowania kontraktu.Called when importing a contract.

ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext)

Wywołuje się, gdy importowany jest punkt końcowy.Called when importing an endpoint.

Dotyczy