我的理解大概是这样的:
这个类使得支持远程调用的应用程序的对象能在不同的应用程序区域之间通信(交换信息)。不同的应用程序在操作系统的进程中十分割开来的,所以都有自己的应用程序区域。在同一应用程序区域中,对象可以直接进行通信;而在不同应用程序区域间则通过复制对象或者通过代理这两种方法来通信的。MarshalByRefObject类就是为了解决不同的应用程序区域之间对象的通信。它就是利用代理进行不同应用程序区域间对象的交换信息。如果是本地应用程序区域,对象可以直接进行通信;如果是远程调用,那么首先把代理传递给远程应用程序区域,远程调用变成对代理的调用,接着在代理上的调用汇集返回给本地应用程序区域的对象。所以跨越不同应用程序区域间的调用采用此类,这里不存在对象复制的问题。

解决方案 »

  1.   

    楼上的,知道COM+、Remoting、WebService在.net下是怎么结合的
    如果com+通过web service暴露出来那它的Transaction、Object Pooling、Roles权限 又是怎样实现的?
      

  2.   

    今夜无雪:
    前两段是翻译MSDN, 我看过很多次了.
    后两段不知所云! :)
      

  3.   

    jhnhu:
    com+ 我是打算忘记它了,何必自讨苦吃.
      

  4.   

    .net做分布式应用还是要依赖com+的啊 transaction、object pooling、roles没用了吗?
    要是没用的话 那.net应该有更好的啊 是什么?
    一个web service(或remoting)就这么暴露出去,谁都能访问?能知道谁来访问吗?出错了没有roll back不就完蛋了!给你做 你怎么解决?
    这几天看了很多文档了,WebService和remoting基本上可以trsaction,但还不知道怎样控制角色(多打了几行字 发现CSDN这个输入框太小了)
      

  5.   

    我看了dotnet自带的FM7的例子。我也不明白为什么BLL/DAL中几乎所有的类都得继承自MarshalByRefObject :(
    msdn那段话我也看了,也是不知所云。
    我是不是要重新学DCOM?