【发布时间】:2010-07-06 09:55:17
【问题描述】:
起初,我将它们视为任何依赖项,将它们在 ctor 中传递给使用服务的类:
var serviceConsumer = new ServiceConsumer(new MailingServiceClient())
问题在于,一旦服务抛出异常,它就会进入故障状态并且不会回复任何请求,因此需要重新初始化。
此外,我熟悉了这样一个事实,即 wcf 服务可能在某些情况下无法正确释放,因为生成的代理的 dispose 方法被破坏(调用关闭而不检查故障状态)并且遇到了几种方法来克服它:
- wrapping every call to every service.
- override the default IDisposable behavior of the scvutil.exe-generated class
由于出于测试原因,我不希望消费者代码自己创建服务客户端,所以我的问题是:
如何维持正常工作的服务?
如何仍然使用依赖注入来实现可测试性?
【问题讨论】:
-
当您搜索“WCF 客户端依赖注入”时应该会有很多点击 - 只需 google 或 bing 然后从那里开始!