IWsdlImportExtension Interface

Définition

Effectuez une implémentation et un attachement à un objet WsdlImporter pour contrôler la façon dont l'importateur mappe des parties Web Services Description Language (WSDL) sur celles d'un objet ServiceDescription.

public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
Dérivé

Exemples

L’exemple de code suivant montre l’utilisation d’un IWsdlImportExtension System.ServiceModel.Description.IServiceContractGenerationExtension et d’un System.ServiceModel.Description.IOperationContractGenerationExtension (le , dans ce cas) pour modifier le code client WCF généré au niveau de l’interface et de l’opération WsdlDocumentationImporter.

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

L'exemple de code suivant montre comment configurer le système de métadonnées client pour utiliser l'IWsdlImportExtension personnalisée d'un fichier de configuration de l'application.

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

Remarques

Implémentez l'interface IWsdlImportExtension pour contrôler le mappage entre WSDL et les objets ServiceEndpoint et ContractDescription, notamment lors de la lecture d'extensions WSDL personnalisées pour modifier les informations relatives à votre contrat ou point de terminaison. Attachez ensuite votre objet personnalisé IWsdlImportExtension personnalisé à un WsdlImporter, par programme ou à l'aide d'un fichier de configuration de l'application. Vous pouvez également joindre votre objet personnalisé IWsdlImportExtension à l’objet interne WsdlImporter utilisé par l’outil Utilitaire de métadonnées ServiceModel (Svcutil.exe) à l’aide d’un fichier de configuration d’application.

La méthode ImportContract est appelée pour importer un contrat.

Utilisez la méthode BeforeImport pour modifier les métadonnées importées ensuite dans des objets ServiceEndpoint et ContractDescription.

Méthodes

BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>)

Appelé avant d'importer des documents de métadonnées.

ImportContract(WsdlImporter, WsdlContractConversionContext)

Appelé lors de l'importation d'un contrat.

ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext)

Appelé lors de l'importation d'un point de terminaison.

S’applique à