IWsdlImportExtension 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
实现并附加到 WsdlImporter 对象,可以对导入程序将 Web Services 描述语言 (WSDL) 部分映射到 ServiceDescription 对象的 Web Services 描述语言 (WSDL) 部分进行控制。
public interface class IWsdlImportExtension
public interface IWsdlImportExtension
type IWsdlImportExtension = interface
Public Interface IWsdlImportExtension
- 派生
示例
下面的代码示例演示了如何使用 IWsdlImportExtension 添加和 System.ServiceModel.Description.IServiceContractGenerationExtension System.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>
注解
实现 IWsdlImportExtension 接口可以对 WSDL 与 ServiceEndpoint 和 ContractDescription 对象之间的映射进行控制,特别是读取自定义 WSDL 扩展以修改您的协定或终结点信息。 然后,通过编程方式或使用应用程序配置文件,将您的自定义 IWsdlImportExtension 对象附加到 WsdlImporter。 还可以使用应用程序配置文件将自定义IWsdlImportExtension对象附加到 ServiceModel 元数据实用工具 (Svcutil.exe) 使用的内部WsdlImporter对象。
ImportContract 方法是在导入协定时调用的。
使用 BeforeImport 方法可以修改随后导入 ServiceEndpoint 和 ContractDescription 对象的元数据。