Looking at creating Channels explicitly in WCF, you do this:
IService channel = new ChannelFactory<IService>(binding, address).CreateChannel();
Why am I allowed to 'type' the channel factory as an interface? I know that the IService interface has to be decorated to allow this. what is ChannelFactory doing behind the scenes to allow this?
Internally,
ChannelFactory<TChannel>creates an object of typeServiceChannelProxy, which derives from System.Runtime.Remoting.Proxies.RealProxy, allowing it to create a transparent proxy over theTChannelinterface.