我用remoting可以调用远程的类,方法,都可以,返回数据,DataSet byte[]都没问题,可是现在我想在服务器做一个Form,在客户端直接调用该Form,就是想实现服务器修改Form后,客户端自动更新,免去更新的麻烦,可是现在的问题是,在客户端可以建立,当ShowDialog的时候,窗体在服务器上弹出,而不是客户端,而Show()方法更不能用,我想我用的是SAO方式,所以不行,当我想换用CAO的时候,无法成功,请问谁有这方面的经验能指点一下吗?谢谢

解决方案 »

  1.   

    SORRY,我不会soket方式,请问和.net remoting是什么关系?能给个例子的连接吗?谢谢
      

  2.   

    因为Form继承自MashalRefObject类,因此觉得这种需要是可以满足的,而且确实有人这么做的,还请高手指点一二
      

  3.   

    因为Form继承自MashalRefObject类,所以当ShowDialog的时候,窗体在服务器上弹出。
    这是因为你客户端调用请求,会发送到服务端。窗体在服务器上弹出。
    至于你用SAO还是CAO都得到Form都只是客户端代理,真正执行都在服务段。
    这就是远程调用阿!
      

  4.   

    谢谢  lookfeng()  那请问对我这种需要来说,应该怎么用remoting来实现呢,非常感谢.,给点思路也可以
      

  5.   

    基本上用remoting是不能解决你的问题的。因为要实现你说的,需要序列化一个Form,
    然后在客户端反序列化,这有两个问题:
    1、Form好像不能被序列化
    2、即使可以序列化一个对象,客户端也要这个对象的类的代码。因此做到不自动更新。要实现自动更新,有很多办法。
    你可以搜一下微软的dotnetupdater。
    或查考http://www.microsoft.com/china/community/program/originalarticles/TechDoc/smartclient.mspx
      

  6.   

    也许把Form对象序列化为数据流发送给客户端,然后在客户端还原能够实现Form对象的传递,但是还原之后是一个Object,转换为Form类型之后能够Show出来,但是如果这个Form有什么其他的public方法和属性就没法访问了。
      

  7.   

    想想也是,如果全部采用XML传到客户端,性能可能还真是个问题,算了,实在不行就用了,还是考虑自动升级了,想先试一下2.0的ClickOnce,呵,谢谢各位,本贴结掉,开新贴继续等高手的答案
      

  8.   

    就是想实现客户端的界面根据服务器的调整自动更新,而且不需要updater之类的下载到本地,有人说就象IE的方式差不多了,至于remoting内部是否下载到本地我到不关心,只要速度不太慢就可以接受