摘要:
.NET Remoting 基础结构需要正确的元数据,以便将一个应用程序域中的对象连接到另一个域中的对象。通常我们将包含远程类型的程序集同时发布到服务器和客户端,但这并不是一个好主意。有太多的原因阻止我们这么做:
1. 我们并不想客户端开发人员知道远程对象的内部细节,诸如私有成员内容等。
2. 我们不希望每次升级都更新客户端文件。 阅读全文
摘要:
使用动态发布有什么好处?
1. 避开 SAO 只能使用默认构造方法的限制。
2. 自主管理 SAO 的载入、卸载,以及其 URI。
RemotingServices
通过使用类 RemotingServices 提供的方法,我们可以很轻松实现这些目标。
Marshal: 用于将 MarshalByRefObject 转换为 ObjRef 类的实例。
Connect:客户端可以用该方法创建远程代理对象的实例。
Disconnect:断开服务器远程对象与信道的连接。客户端代理在断开后调用任何方法都会触发 RemotingException。
Unmarshal:接受 ObjRef 并从它创建一个客户端代理对象。这个方法很少被使用,因为多数情况下我们并不会直接将 ObjRef 显示传递给客户端,而是交由 Remoting 基础结构来处理。
ObjRef
ObjRef 是远程对象的可序列化表示,用于跨应用程序域边界传输对象引用。为对象创建 ObjRef 称为封送。可以通过信道 阅读全文
摘要:
.NET Remoting 的追踪服务使我们可以获取由远程结构发出的有关对象与代理的行为通知。追踪服务是可插入的,我们可以将一个或多个自定义跟踪处理程序注册到追踪服务中,当发生封送、取消封送或断开当前 AppDomain 中的对象或代理时,注册到中的每个追踪处理程序都将被远程处理调用。 阅读全文
摘要:
在 Remoting 中使用 Event 主要是为了实现 CallBack 机制,让服务器在接收到某个 "消息" 时,主动调用某个或多个客户端的方法。
阅读全文
摘要:
使用配置文件替代硬编码可使应用程序拥有更高的灵活性,尤其是对分布式系统而言,意味着我们可以非常方便地调整分布对象的配置。Remoting 的配置文件比较简单,详细信息可以参考 MSDN。 阅读全文