C# Microsoft提供WCF服务

C# Microsoft提供WCF服务,c#,.net,wcf,microsoft-fakes,C#,.net,Wcf,Microsoft Fakes,我正试图遵循并利用一个垫片来删除WCF服务调用的外部依赖,该调用是从我正在执行单元测试的方法中调用的。与示例不同,我使用类似以下代码动态生成WCF客户端: ChannelFactory<IReportBroker> factory = new ChannelFactory<IReportBroker>("ReportBrokerBasicHttpStreamed", new EndpointAddress(this.CurrentSecurityZoneConfigura

我正试图遵循并利用一个垫片来删除WCF服务调用的外部依赖,该调用是从我正在执行单元测试的方法中调用的。与示例不同,我使用类似以下代码动态生成WCF客户端:

ChannelFactory<IReportBroker> factory = new ChannelFactory<IReportBroker>("ReportBrokerBasicHttpStreamed", new EndpointAddress(this.CurrentSecurityZoneConfigurationManager.ConfigurationSettings[Constants.ConfigurationKeys.ReportBrokerServiceUrl]));
IReportBroker proxy = factory.CreateChannel();
proxy.Execute(requestMessage))
ChannelFactory factory=newchannelfactory(“ReportBrokerBasicHttpStreamed”,新端点地址(this.CurrentSecurityZoneConfigurationManager.ConfigurationSettings[Constants.ConfigurationKeys.ReportBrokerServiceUrl]);
IReportBroker proxy=factory.CreateChannel();
proxy.Execute(requestMessage))
如何调整该示例以填充CreateChannel方法返回的代理?我假设在ShimWCFService类中,我需要添加如下内容

ShimChannelFactory<TService>.AllInstances.CreateChannel = (var1) => { return [instance of a mock object]};
ShimChannelFactory.AllInstances.CreateChannel=(var1)=>{return[模拟对象的实例]};

但是,我不确定如何将
的模拟对象与作为返回值的垫片相关联

您需要为每个类型参数填充工厂。假设您有三个服务契约“IService0”、“IService1”和“IService2”

然后,需要按如下方式设置垫片:

ShimChannelFactory<IService0>.AllInstances.CreateChannel = (_) => { return new Service0Mock(); }
ShimChannelFactory<IService1>.AllInstances.CreateChannel = (_) => { return new Service1Mock(); }
ShimChannelFactory<IService2>.AllInstances.CreateChannel = (_) => { return new Service2Mock(); }
ShimChannelFactory.AllInstances.CreateChannel=(\u)=>{return new Service0Mock();}
ShimChannelFactory.AllInstances.CreateChannel=(\u)=>{返回新的Service1Mock();}
ShimChannelFactory.AllInstances.CreateChannel=())=>{return new Service2Mock();}

与论坛网站不同,我们不会在网站上使用“谢谢”或“感谢任何帮助”或签名。见”。