所以目前我正在使用以下代码创建一个wcf客户端实例:
Service1Client client = (Service1Client)_container.Resolve<IService1>(new ParameterOverride("remoteAddress", url),
new ParameterOverride("endpointConfigurationName", "basicEndpoint"));
然而,当我将对象作为Service1Client进行投射时,这不起作用,因此我的单元测试因为无法投射Mock对象而爆炸:
//Mock the WCF service
var wcfMock = new Mock<IService1>();
//register with container!
var container = new UnityContainer();
container.RegisterInstance(wcfMock.Object);
有关如何最好地解决此问题的任何想法?
答案 0 :(得分:1)
您声称要投放到Service1Client
,因此您可以访问Open()
的方法Abort()
,Close()
和System.ServiceModel.ClientBase
。
这些方法在System.ServiceModel.ICommunicationObject
中定义,所以让你的接口IService1
继承自:{/ p>
public interface IService1 : ICommunicationObject
{
}
然后你可以省略演员。