IWsdlImportExtension インターフェイス

定義

WsdlImporter オブジェクトを実装してアタッチし、インポーターが Web サービス記述言語 (WSDL) パーツをServiceDescription オブジェクトのパーツにマップする方法を制御します。

public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
派生

次のコード例は、 IWsdlImportExtension を使用して、 System.ServiceModel.Description.IServiceContractGenerationExtensionSystem.ServiceModel.Description.IOperationContractGenerationExtension (この場合は WsdlDocumentationImporter) を追加して、生成された WCF クライアント コードをインターフェイスと操作レベルで変更する方法を示しています。

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

次のコード例は、アプリケーション構成ファイルからカスタム IWsdlImportExtension を使用するようにクライアント メタデータ システムを構成する方法を示しています。

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

注釈

特にカスタム WSDL 拡張機能を読み取ってコントラクトまたはエンドポイント情報を変更する場合に、WSDL オブジェクトと ServiceEndpoint オブジェクトとContractDescription オブジェクト間のマッピングを制御するIWsdlImportExtension インターフェイスを実装します。 次に、プログラムまたはアプリケーション構成ファイルを使用して、カスタム IWsdlImportExtension オブジェクトを WsdlImporter にアタッチします。 アプリケーション構成ファイルを使用して、ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe) で使用される内部WsdlImporterにカスタム IWsdlImportExtension オブジェクトをアタッチすることもできます。

ImportContract メソッドは、コントラクトをインポートするために呼び出されます。

BeforeImport メソッドを使用して、ServiceEndpointおよびContractDescription オブジェクトにインポートされるメタデータを変更します。

メソッド

名前 説明
BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>)

メタデータ ドキュメントをインポートする前に呼び出されます。

ImportContract(WsdlImporter, WsdlContractConversionContext)

コントラクトをインポートするときに呼び出されます。

ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext)

エンドポイントをインポートするときに呼び出されます。

適用対象