如何创建和管理wcf服务客户端?
首先,我将它们视为任何依赖项,将它们在ctor中传递给使用服务的类:如何创建和管理wcf服务客户端?,wcf,dispose,fault,Wcf,Dispose,Fault,首先,我将它们视为任何依赖项,将它们在ctor中传递给使用服务的类: var serviceConsumer = new ServiceConsumer(new MailingServiceClient()) 问题是,一旦从服务中抛出异常,它就会进入故障状态,并且不会响应任何请求,因此需要重新初始化 此外,我还熟悉了wcf服务在某些情况下可能无法正确处置的事实,因为生成的代理的dispose方法已被破坏(调用关闭,但未检查故障状态),并遇到了几种解决方法: 由于测试原因,我不希望消费者代码
var serviceConsumer = new ServiceConsumer(new MailingServiceClient())
问题是,一旦从服务中抛出异常,它就会进入故障状态,并且不会响应任何请求,因此需要重新初始化
此外,我还熟悉了wcf服务在某些情况下可能无法正确处置的事实,因为生成的代理的dispose方法已被破坏(调用关闭,但未检查故障状态),并遇到了几种解决方法:
由于测试原因,我不希望消费者代码自己创建服务客户机,因此我的问题是:
- 如何维护正常工作的无故障服务
- 我如何仍然使用依赖注入来实现可测试性
- 找到了一个很好的解决方案
替代VS one的代理生成器,并围绕默认代理生成一个包装器,用于处理代理故障、超时和正确处理
似乎对我来说效果不错。这是第二个链接,当你搜索“WCF客户端依赖注入”时,应该会有很多点击率——只需谷歌或必应,然后从那里开始!