Udostępnij za pośrednictwem


IWsdlImportExtension Interfejs

Definicja

Zaimplementuj WsdlImporter i dołącz do obiektu, aby kontrolować sposób mapowania części języka WSDL (Web Services Description Language) importera na te z ServiceDescription obiektu.

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

Przykłady

Poniższy przykład kodu pokazuje użycie IWsdlImportExtension metody , 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 do używania 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 IWsdlImportExtension interfejs, aby kontrolować mapowanie między obiektami WSDL i ServiceEndpoint i ContractDescription , zwłaszcza podczas odczytywania niestandardowych rozszerzeń WSDL w celu zmodyfikowania informacji o kontrakcie lub punkcie końcowym. Następnie dołącz obiekt niestandardowy IWsdlImportExtension do WsdlImporter pliku konfiguracji aplikacji programowo lub za pomocą pliku konfiguracji aplikacji. Obiekt niestandardowy IWsdlImportExtension można również dołączyć 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 następnie są importowane do ServiceEndpoint obiektów i ContractDescription .

Metody

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