如果我有一个界面:
public interface ISomething
{
void DoAThing();
}
然后我用 ChannelFactory 实例化它:
var channel = new ChannelFactory<ISomething>().CreateChannel
我得到了一个可以使用的实例。
现在,要关闭它,我需要强制转换:
((IClientChannel)channel).Close
或者
((IChannel)channel).Close
或者
((ICommunicationObject)channel).Close
我的ISomething接口不继承任何这些接口。
那么CreateChannel方法返回了什么样的对象,它是如何构造一个能够实现在运行时才知道的接口的动态对象呢?