我有一個使用另一個服務(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