Język

IWsdlImportExtension Interfejs

Definicja

Zaimplementuj WsdlImporter i dołącz do obiektu, aby kontrolować, jak importer mapuje części WSDL (Web Services Description Language) na części obiektu ServiceDescription .

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

Przykłady

W poniższym przykładzie kodu pokazano użycie polecenia IWsdlImportExtension , aby dodać element System.ServiceModel.Description.IServiceContractGenerationExtension i System.ServiceModel.Description.IOperationContractGenerationExtension ( WsdlDocumentationImporterw tym przypadku ), aby zmodyfikować wygenerowany kod klienta WCF na poziomie interfejsu i operacji.

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

W poniższym przykładzie kodu pokazano, jak skonfigurować system metadanych klienta tak, aby korzystał z niestandardowego IWsdlImportExtension pliku konfiguracji aplikacji.

<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 interfejs do IWsdlImportExtension sterowania mapowaniem między plikami WSDL i ServiceEndpoint i ContractDescription obiektami, zwłaszcza podczas odczytywania niestandardowych rozszerzeń WSDL w celu modyfikowania informacji o kontrakcie lub punkcie końcowym. Następnie dołącz obiekt niestandardowy IWsdlImportExtension do WsdlImporter obiektu programowego lub przy użyciu pliku konfiguracji aplikacji. Możesz również dołączyć obiekt niestandardowy IWsdlImportExtension do wewnętrznego WsdlImporter elementu używanego przez narzędzie ServiceModel Metadata Tool (Svcutil.exe) przy użyciu pliku konfiguracji aplikacji.

Metoda jest wywoływana ImportContract w celu zaimportowania kontraktu.

BeforeImport Użyj metody , aby zmodyfikować metadane, które są następnie importowane do ServiceEndpoint obiektów i ContractDescription .

Metody

Nazwa Opis
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>)

Wywoływane przed zaimportowaniem dokumentów metadanych.

ImportContract(WsdlImporter, WsdlContractConversionContext)

Wywoływana podczas importowania kontraktu.

ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext)

Wywoływana podczas importowania punktu końcowego.

Dotyczy