使用unity创建一个WCF客户端实例

本文关键字:一个 WCF 客户端 实例 unity 创建 使用 | 更新日期: 2023-09-27 18:12:40

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

对于如何最好地解决这个问题有什么想法吗?

使用unity创建一个WCF客户端实例

您声称要转换到Service1Client,因此您可以访问System.ServiceModel.ClientBaseOpen(), Abort()Close()方法。

这些方法是在System.ServiceModel.ICommunicationObject中定义的,所以让你的接口IService1继承它:

public interface IService1 : ICommunicationObject
{
}