wcf的ChannelFactory是通过动态编译实现的么?

wsxqaz 2011-12-27 05:40:50
获取结构这里不谈,只说获取结构后生成一个代理对象,是不是直接通过动态编译来生成的?调用编译方法?

还有我发了3次点进去都是404还我分数!系统怎么弄的
...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wsxqaz 的回复:]

引用 4 楼 fangxinggood 的回复:

ChannelFactory 会创建一个透明代理,然后通过代理的拦截,以及配置文件的配置来组装WCF的Message。

透明代理的概念从 .NET Remoting 就有了,而且在很多 AOP 实践里也用到了它。

http://www.cnblogs.com/artech/archive/2011/09/10/clientfra……
[/Quote]
应该不是动态编译,只是将接口的方法通过规则转换成Soap请求,这也不需要动态编译啊。
wsxqaz 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fangxinggood 的回复:]

引用 5 楼 wsxqaz 的回复:

引用 4 楼 fangxinggood 的回复:

ChannelFactory 会创建一个透明代理,然后通过代理的拦截,以及配置文件的配置来组装WCF的Message。

透明代理的概念从 .NET Remoting 就有了,而且在很多 AOP 实践里也用到了它。

http://www.cnblogs.com/artech/archiv……
[/Quote]

可是那个对象还是要有啊?总不可能凭空出来一个对象,毕竟就算是透明对象我还是要实打实的去调用里面的方法对不对?而调用就必须有个实际存在的对象(至于它具体去做什么事情我不管)让我来调用。这个对象可能是要创建出来的,一般我们用new去创建的,这个就算有Soap信息也只是xml不是对象总是要创建一个对象到内存里得。这个过程如何做的呢?我看了RealProxy的实现,他里面创建透明代理方法调用了一个外部com方法,具体这个怎么实现就看不到了。
wsxqaz 2011-12-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fangxinggood 的回复:]

ChannelFactory 会创建一个透明代理,然后通过代理的拦截,以及配置文件的配置来组装WCF的Message。

透明代理的概念从 .NET Remoting 就有了,而且在很多 AOP 实践里也用到了它。

http://www.cnblogs.com/artech/archive/2011/09/10/clientframework02.html

http://blog……
[/Quote]

我知道透明代理,我想问的是,就算是透明代理他还是要创建一个包含远程调用连接地址方法的对象。这个对象是如何出来的?是通过复杂对象xml的模型信息在本地通过动态编译的方式创建出来的对不对?我想问的是这个!
机器人 2011-12-28
  • 打赏
  • 举报
回复
ChannelFactory 会创建一个透明代理,然后通过代理的拦截,以及配置文件的配置来组装WCF的Message。

透明代理的概念从 .NET Remoting 就有了,而且在很多 AOP 实践里也用到了它。

http://www.cnblogs.com/artech/archive/2011/09/10/clientframework02.html

http://blog.csdn.net/gentle_wolf/article/details/6456678
wsxqaz 2011-12-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]

你用 ChannelFactory<T> 的时候,比如添加 ServiceContract 即接口的Library 呀。
所以这个T不是凭空冒出来的。

这种方式使用 WCF 不用添加客户端代理。
[/Quote]

可是T是个接口,我总要给T对象赋一个实例才能调用T接口里的方法对不对?
比如
T a=a.ChannelFactory<T>();

a.bbb("111");

这样调用,我的意思是这个实例是如何创建的是不是在本地使用对象描述(xml)文件,通过动态编译创建的
wsxqaz 2011-12-28
  • 打赏
  • 举报
回复
怎么什么都显示不出来了
机器人 2011-12-27
  • 打赏
  • 举报
回复
你用 ChannelFactory<T> 的时候,比如添加 ServiceContract 即接口的Library 呀。
所以这个T不是凭空冒出来的。

这种方式使用 WCF 不用添加客户端代理。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧