远程获得一个对象(objRemote),调用objRemote的方法,此方法是在远程服务端执行对么?objRemote有一方法用来创建另外一个对象(objSomething),调用objSomething的方法,此方法在哪里执行?服务端么?不太明白remoting的机制,麻烦高手简短地解释一下,多谢!

解决方案 »

  1.   

    “远程获得”是什么意思呢?这有很多种可能性,不知道你到底是指哪一种激活方式。所有的Remoting对象都是在服务器端执行的,服务器通过Mashal操作返回一个RefObject类型的对象给客户端,客户端再UnMashal。客户端仅仅对本地代理对象进行操作,其实际对象还是要在服务器上执行。相关内容你参考Remoting文档。一个Remoting对象方法创建另外一个对象并且返回给客户端,如果它也是继承自MarlshalByRefObject,那么同样客户端就自动创建其代理并且通过代理执行相关操作。这个对象不需要在客户端注册为远程的,因为它并不在客户端new(实例化)。
      

  2.   

    有服务器激活、客户端激活,不知道你说的“远程获取”的含义。通常及您需要服务器端singletone激活就够了,它作为一个工厂类(对象)的宿主,结构上非常好理解,扩展性很好。
      

  3.   

    多谢sp1234,你说这些很大程度上消除了我对此问题的疑惑!
    不过我感觉哪种激活方式以及singlecall还是singleton对这个问题似乎没什么影响,是不是?