IWsdlImportExtension Schnittstelle

Definition

Implementieren und Anfügen an ein WsdlImporter Objekt, um zu steuern, wie der Importer Web Services Description Language (WSDL)-Teile mit denen eines ServiceDescription Objekts verknüpft.

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

Beispiele

Das folgende Codebeispiel zeigt die Verwendung des Hinzufügens eines und einer (in diesem Fall), um generierten WCF-Clientcode auf Schnittstelle und Vorgangsebene zu ändern.The following code shows the use of IWsdlImportExtension 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));
              }
          }
      }
  }

Das folgende Codebeispiel zeigt, wie Sie das Clientmetadatensystem so konfigurieren, dass er die benutzerdefinierte IWsdlImportExtension aus einer Anwendungskonfigurationsdatei verwendet.

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

Hinweise

Implementieren Sie die IWsdlImportExtension Schnittstelle, um die Zuordnung zwischen WSDL und ContractDescriptionServiceEndpoint Objekten zu steuern, insbesondere beim Lesen von benutzerdefinierten WSDL-Erweiterungen, um Ihre Vertrags- oder Endpunktinformationen zu ändern. Fügen Sie das benutzerdefinierte IWsdlImportExtension Objekt dann programmgesteuert oder mithilfe einer Anwendungskonfigurationsdatei an WsdlImporter . Sie können Ihr benutzerdefiniertes IWsdlImportExtension Objekt auch an das interne WsdlImporter objekt anfügen, das vom ServiceModel Metadata Utility Tool (Svcutil.exe) mithilfe einer Anwendungskonfigurationsdatei verwendet wird.

Die ImportContract Methode wird aufgerufen, um einen Vertrag zu importieren.

Verwenden Sie die BeforeImport Methode, um die Metadaten zu ändern, die dann in ServiceEndpoint und ContractDescription Objekte importiert werden.

Methoden

Name Beschreibung
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>)

Wird vor dem Importieren von Metadatendokumenten aufgerufen.

ImportContract(WsdlImporter, WsdlContractConversionContext)

Wird beim Importieren eines Vertrags aufgerufen.

ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext)

Wird beim Importieren eines Endpunkts aufgerufen.

Gilt für: