ChannelFactory (WCF/C#) 如何使用接口作为类型?

How does ChannelFactory (WCF/C#) use an Interface as a type?

查看在 WCF 中显式创建通道,您可以这样做:

IService channel = new ChannelFactory<IService>(binding, address).CreateChannel();

为什么我可以 'type' 通道工厂作为接口?我知道必须修饰 IService 接口才能实现这一点。 ChannelFactory 在幕后做了什么来实现这一点?

在内部,ChannelFactory<TChannel> 创建一个类型为 ServiceChannelProxy 的对象,它通过 TChannel 接口派生自 System.Runtime.Remoting.Proxies.RealProxy, allowing it to create a transparent proxy