对于项目需求,我需要实例化没有构造函数的WsdlContractConversionContext。
有什么工作可以做到这一点吗?
WsdlContractConversionContext是System.ServiceModel.Description命名空间的成员。
注意:的要求是,我正在执行IWsdlExportExtension.ExportContract和IWsdlImportExtension.ImportContract的实现,为了对这个实现进行单元测试,我需要WsdlContractConversionContext实例。
发布于 2012-09-18 04:51:10
基本上有两种方法可以做到这一点:要么使用反射调用类的非公共构造函数(确保向其传递适当的参数);要么让WCF为您创建它,并在需要的地方使用它。WsdlContractConversionContext作为参数传递给IWsdlExportExtension.ExportContract或IWsdlImportExtension.ImportContract,因此您需要实现这两个接口中的一个(导出通常更容易,因为您不需要修改使用WSDL的工具),并强制调用接口(为此您可能需要访问服务元数据端点)。
http://blogs.msdn.com/b/carlosfigueira/archive/2011/10/06/wcf-extensibility-wsdl-export-extension.aspx上的文章有一个实现WSDL导出扩展的示例。
问题中的编辑更新:众所周知,WCF的许多部分很难进行单元测试。如果不能使用WCF本身来创建实例,那么唯一的选择就是使用反射。要创建转换上下文类的实例,您需要一个ContractDescription实例(您可以为您的合同创建该实例,但并不容易)和一个更难的PortType实例。我担心单元测试您的WSDL导出/导入扩展的实现可能不值得这么做。
https://stackoverflow.com/questions/12458970
复制相似问题