起初,我将它们视为任何依赖项,将它们在 ctor 中传递给使用服务的类:
var serviceConsumer = new ServiceConsumer(new MailingServiceClient())
问题是一旦从服务中抛出异常,它就会进入故障状态并且不会回复任何请求,因此需要重新初始化。
此外,我熟悉了这样一个事实,即 wcf 服务可能在某些情况下无法正确处理,因为生成的代理的 dispose 方法被破坏(调用关闭而不检查故障状态)并且遇到了几种方法来克服这个问题:
由于出于测试原因,我不希望消费者代码自己创建服务客户端,所以我的问题是:
如何维持正常工作的服务?
我如何仍然使用依赖注入来实现可测试性?