All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Asp.net,文件上传基类(取得文件后缀名,保存文件,加入文字水印)_[Asp.Net教程]
servlet+ajax实例:由省份选择城市_[AJAX教程]
如何用一条sql取得第10到第20条的记录?_[SQL Server教程]
SqlServer教程:经典SQL语句集锦_[SQL Server教程]
Asp.net,字符串操作基类(安全,替换,分解等)_[Asp.Net教程]
C#教程:建立COM+组件强名称
PHP解释器的代码高亮输出_[PHP教程]
动态网页技术PHP入门:PHP安装设置技巧_php资料_编程技术
图片地址防盗链,通过IHttpHandler实现_[Asp.Net教程]
查询中where和having的区别_[SQL Server教程]
Reading number is top 10 pictures
刘亦菲写真集2
The real super beauty9
七步解决性冷淡
Photographed the passion of the clients and prostitutes in the sex trade picture2
The money of more than 100 countries and regions21
A man's favorite things12
Men's and women's orgasms
Catch prostitution woman in China
Take you to walk into the most true north Korea rural1
这才叫绝色美女1
Download software ranking
网络管理员第三版
Adobe Flash Player(IE) 10.0.32.18 浏览器专用的FLASH插件
Boxer's Top ten classic battle6
asp.netWeb服务器高级编程
Desire a peach blossom
实战黑客不求人
塘西风月痕
小黑猫大战两米大花蛇
WebService在.NET中的实战应用教学视频 → 第1集
XML+Web+Service开发教程
qq published in(发表于) 2014/7/9 1:35:33 Edit(编辑)
ASP.NET Remoting体系结构(一)

ASP.NET Remoting体系结构(一)

ASP.NET Remoting体系结构(一):远程类对象

远程类对象

任何远程处理框架的主要目的之一就是要提供必要的基础结构,以便隐藏远程对象调用方法和返回结果的复杂性。任何位于调用方应用程序域之外的对象,即使在同一台计算机上执行,也会被认为是远程对象。在应用程序域内部,原始数据类型按数值传递,而所有的对象按引用传递。因为本地对象引用仅在创建对象的应用程序域内有效,所以它们不能以这种方式传递到远程方法调用或从远程方法调用返回。所有必须跨越应用程序域的本地对象都必须按数值来传递,并且应该用 [serializable] 自定义属性作标记,否则它们必须实现 ISerializable 接口。对象作为参数传递时,框架将该对象序列化并传输到目标应用程序域,对象将在该目标应用程序域中被重新构造。无法序列化的本地对象将不能传递到其他应用程序域中,因而也不能远程处理。

如果要构建一个远程类对象则必须继承MarshalByRefObject类,这样可以使任一对象变为远程对象。当某个客户端激活一个远程对象时,它将接收到该远程对象的代理,并对该代理的所有操作适当地重新定向,使远程处理基础结构能够正确截取和转发调用。尽管这种重新定向对性能有一些影响,但JIT编译器和执行引擎(EE)已经优化,可以在代理和远程对象驻留在同一个应用程序域中时,防止不必要的性能损失。如果代理和远程对象不在同一个应用程序域中,则堆栈中的所有方法调用参数会被转换为消息并被传输到远程应用程序域,消息被传输到远程应用程序域后会被转换为原来的堆栈帧,同时该方法也会被调用。从方法调用中返回结果时也使用同一个过程。Remoting体系结构中远程类对象和代理对象就是通过这种方式来通信的。

代理对象是在客户端激活远程对象时创建的。作为远程对象的代表,代理对象确保对代理进行的所有调用都能够转发到正确的远程对象实例。当某个客户端激活一个远程对象时,框架将创建TransparentProxy类的一个本地实例(该类中包含所有类的列表与远程对象的接口方法)。因为TransparentProxy类在创建时用CLR注册,所以代理对象的所有方法调用都在被运行时截取。这时系统将检查调用,以确定该调用是否为远程对象的有效调用,以及远程对象的实例是否与代理位于同一应用程序域中。如果对象在同一个应用程序域中,则被路由到实际对象;如果对象位于不同的应用程序域中,将通过调用堆栈中的调用参数的Invoke方法将其打包到IMessage对象并转发到RealProxy类中。此类(或其内部实现)负责向远程对象转发消息。TransparentProxy类和RealProxy类都是在远程对象被激活后在后台创建的,但只有Transparent Proxy类返回到客户端,以回应客户端的调用,从而实现远程调用类对象。




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.