来自web.config </tchannel>的IChannelFactory <tchannel>和端点配置

时间:2011-04-20 21:11:06

标签: c# wcf unit-testing mocking

我有一个WCF Ria服务,它调用几个wcf服务(非Ria)。我正在使用ChannelFactory来创建频道,但问题是我想为这个Ria服务编写单元测试而ChannelFactory是一个类,而不是一个接口,所以我不能嘲笑它。一个理想的解决方案是声明IChannelFactory并使用依赖注入,但这里存在一个问题。

ChannelFactory具有CreateChannel的重载,它采用web / app.config文件中定义的端点配置名称。我正在使用这种方法,这样我就不必硬编码端点参数或创建额外的ConfigurationProperties来重新发明轮子。 IChannelFactory没有这个成员,所以即使我将ChannelFactory注入我的服务,我也无法创建从配置文件配置的通道。所以我的问题是,如何解决这个问题?我的意思是如何创建一个频道并使用IChannelFactory合约从配置文件配置它而不使用Reflection / dynamic?

1 个答案:

答案 0 :(得分:0)

好吧,我通过创建自己的IChannelFactory找到了解决方案。其中一个实现依赖于ChannelFactory而另一个被模拟:)