使用unity创建wcf客户端实例

时间:2016-10-12 13:42:49

标签: c# wcf unit-testing

所以目前我正在使用以下代码创建一个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);

有关如何最好地解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

您声称要投放到Service1Client,因此您可以访问Open()的方法Abort()Close()System.ServiceModel.ClientBase

这些方法在System.ServiceModel.ICommunicationObject中定义,所以让你的接口IService1继承自:{/ p>

public interface IService1 : ICommunicationObject
{
}

然后你可以省略演员。