我有一个使用另一个服务(Service2)的服务(Service1)。我正在为这两种服务使用依赖注入,并且需要将Service2的代理注入到Service1中。使用WCF代理的依赖注入
我不确定如何处理代理不是简单的IService2类,而是从ClientBase继承的代理。很明显,我的Service1实现需要打开代理,并且应该在使用后关闭它,或者如果发生异常而中止它,但是如果我只是注入一个IService2实例,那么我不能这样做(因为打开,关闭和中止方法)是在基类上,而我的操作是在界面上。
当谈到测试Service1时,我希望只是模拟接口,但如果Service1实现期望Open,Close和Abort方法,那么这很棘手。在过去,我做了一件这样的事,但必须有更好的方法!
var proxyBase = _service2 as ClientBase;
if (proxyBase != null)
{
proxyBase.Open();
}
_service2.DoOperation("blah"); //the actual operation
if (proxyBase != null)
{
proxyBase.Close();
}
// repeat for Abort in exception handler(s).
其他人在做什么?
感谢
@ the-folower-guy请更新评论中的链接。谢谢 – 2013-10-19 18:37:26