如何创建和管理wcf服务客户端?

如何创建和管理wcf服务客户端?,wcf,dispose,fault,Wcf,Dispose,Fault,首先,我将它们视为任何依赖项,将它们在ctor中传递给使用服务的类: var serviceConsumer = new ServiceConsumer(new MailingServiceClient()) 问题是,一旦从服务中抛出异常,它就会进入故障状态,并且不会响应任何请求,因此需要重新初始化 此外,我还熟悉了wcf服务在某些情况下可能无法正确处置的事实,因为生成的代理的dispose方法已被破坏(调用关闭,但未检查故障状态),并遇到了几种解决方法: 由于测试原因,我不希望消费者代码

首先,我将它们视为任何依赖项,将它们在ctor中传递给使用服务的类:

var serviceConsumer = new ServiceConsumer(new MailingServiceClient())
问题是,一旦从服务中抛出异常,它就会进入故障状态,并且不会响应任何请求,因此需要重新初始化

此外,我还熟悉了wcf服务在某些情况下可能无法正确处置的事实,因为生成的代理的dispose方法已被破坏(调用关闭,但未检查故障状态),并遇到了几种解决方法:

  • 由于测试原因,我不希望消费者代码自己创建服务客户机,因此我的问题是:

    • 如何维护正常工作的无故障服务

    • 我如何仍然使用依赖注入来实现可测试性

      • 找到了一个很好的解决方案

        替代VS one的代理生成器,并围绕默认代理生成一个包装器,用于处理代理故障、超时和正确处理


        似乎对我来说效果不错。

        这是第二个链接,当你搜索“WCF客户端依赖注入”时,应该会有很多点击率——只需谷歌或必应,然后从那里开始!