【发布时间】:2014-11-22 19:38:47
【问题描述】:
在WCF Client Architecture 中,它说
将 ChannelFactory 类与服务契约接口一起使用时,必须强制转换为 IClientChannel 接口才能显式打开、关闭或中止通道
因此,您可以像这样创建和使用客户端通道对象:
var cf = new ChannelFactory<ICalculator>(binding, ea);
var channel = cf.CreateChannel();
double result = channel.Add(5.2, 3.5);
Console.WriteLine(channel.GetType()); // outputs ICalculator
Console.WriteLine(result);
((IClientChannel)channel).Close();
这里有两件事让我感到困惑。
-
CreateChannel的方法签名,以及第一个标准输出,表明channel变量是ICalculator类型,如何转换成IClientChannel? -
CreateChannel返回的对象应该是实现了任何接口的某个typeof对象,而channel.GetType()应该返回那个确切的类型,为什么它返回一个接口类型?
【问题讨论】:
标签: c# wcf channelfactory