ClientBase提供了一个实现T ServiceContract接口的Channel属性。这个类用于自动实现接口的方法是什么,并且是否有一个如何实现此方法的示例(即,对于我自己的类)?
答案 0 :(得分:4)
看到Reference Source,看起来它正在使用频道工厂......
为了使非常长时间缩短,请考虑一下 - 你要求的是一个动态代理,一个拦截方法调用并检查数据的类。在WCF的情况下,它使用MethodInfo
和相关属性将呼叫作为RPC通过任何协议和连接建立发送。
请参阅RealProxy了解.NET中的入门者,并且还考虑到有很多代理库。
答案 1 :(得分:3)
我并不确切知道它是如何实施的。
但它指出了编程中的一般问题 - 您希望在运行时动态创建一个实现任何给定接口的对象。
在WCF情况下,这个动态创建的对象将拦截任何调用,然后查看方法和参数的属性,以确定如何将其序列化为SOAP或JSON消息。
我使用的动态代理的实现是Castle DynamicProxy。