다음을 통해 공유


IWsdlImportExtension 인터페이스

정의

WsdlImporter 개체를 구현하고 연결하여 가져오기에서 WSDL(웹 서비스 기술 언어) 부분을 ServiceDescription 개체의 해당 부분으로 매핑하는 방법을 제어합니다.

public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
파생

예제

The following code example shows the use of IWsdlImportExtension to 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));
              }
          }
      }
  }

다음 코드 예제에서는 애플리케이션 구성 파일에서 사용자 지정 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>

설명

IWsdlImportExtension 특히 계약 또는 엔드포인트 정보를 수정하기 위해 사용자 지정 WSDL 확장을 읽을 때 WSDL과 ServiceEndpoint ContractDescription 개체 간의 매핑을 제어하는 인터페이스를 구현합니다. 그런 다음 프로그래밍 방식이나 애플리케이션 구성 파일을 사용하여 사용자 지정 IWsdlImportExtension 개체를 WsdlImporter에 연결합니다. 애플리케이션 구성 파일을 사용하여 ServiceModel 메타데이터 유틸리티 도구(Svcutil.exe)에서 사용하는 내부 WsdlImporter 개체에 사용자 지정 IWsdlImportExtension 개체를 연결할 수도 있습니다.

ImportContract 메서드는 계약을 가져오기 위해 호출됩니다.

메서드를 BeforeImport 사용하여 가져온 메타데이터 및 ContractDescription 개체를 ServiceEndpoint 수정합니다.

메서드

BeforeImport(ServiceDescriptionCollection, XmlSchemaSet, ICollection<XmlElement>)

메타데이터 문서를 가져오기 전에 호출됩니다.

ImportContract(WsdlImporter, WsdlContractConversionContext)

계약을 가져올 때 호출됩니다.

ImportEndpoint(WsdlImporter, WsdlEndpointConversionContext)

엔드포인트를 가져올 때 호출됩니다.

적용 대상