• λ我爱Aspx >> Asp.Net >> 一步一步学Remoting之三:复杂对象
  • 一步一步学Remoting之三:复杂对象

  • :aspxer  Դ:internet  :2007-5-15 20:46:30  ؼ:
  • ].Rows[ 0 ][ " test " ].ToString());

    Console.ReadLine();

运行后发现输出data_ok了。在这里不管用哪种模式来激活都会得到data_ok,因为我们并没有要求远程对象来保存状态。

总结:

所有必须跨越应用程序域的本地对象都必须按数值来传递,并且应该用 [serializable] 自定义属性作标记,否则它们必须实现 ISerializable 接口。对象作为参数传递时,框架将该对象序列化并传输到目标应用程序域,对象将在该目标应用程序域中被重新构造。无法序列化的本地对象将不能传递到其他应用程序域中,因而也不能远程处理。通过从 MarshalByRefObject 导出对象,可以使任一对象变为远程对象。当某个客户端激活一个远程对象时,它将接收到该远程对象的代理。对该代理的所有操作都被适当地重新定向,使远程处理基础结构能够正确截取和转发调用。尽管这种重新定向对性能有一些影响,但 JIT 编译器和执行引擎 (EE) 已经优化,可以在代理和远程对象驻留在同一个应用程序域中时,防止不必要的性能损失。如果代理和远程对象不在同一个应用程序域中,则堆栈中的所有方法调用参数会被转换为消息并被传输到远程应用程序域,这些消息将在该远程应用程序域中被转换为原来的堆栈帧,同时该方法调用也会被调用。从方法调用中返回结果时也使用同一过程。

上一篇: remoting使用手记

下一篇: 在Remoting Server上取得Remoting Client的IP地址

Ҷƪл˵?
第一页上一页567891011下一页尾页
  • һƪ在 XSL/XSLT 中实现随机排序
    һƪ一步一步学Remoting之二:激活模式