我想知道,怎样利用远程的Class来创建一个本地的Object.
比如
服务器端 A
public class MyClass : MarshalByRefObject
{
public void create(string name)
     {
          //在C:\创建一个文件 name.txt
     } 
}客户端 B, 用config文件和服务器端建立连接public class Client
{
public void test(string name)
     {
         RemotingConfiguration.Configure("Client.exe.config");
         MyClass testobject=new MyClass();
         testobject.create(name); //remote method 
     }
}因为利用 new MyClass()创建出来的是Remote Object,所以当testobject调用create(name)的时候,创建的文件是在服务器端,我想知道的是怎样利用MyClass来创建一个本地的Object,这样在调用create(name)的时候,是在客户端B创建文件.多谢了!

解决方案 »

  1.   

    帮你顶====CSDN 小助手 V2.0 2005年10月16日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
    下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
    拒绝日货。
      

  2.   

    没有人知道吗?我知道如果是server,client都可以refrence到MyClass的时候,可以创建本地的Object,我想知道的是,如果MyClass只在server端,怎样才能在client端建立本地的Object?
      

  3.   

    试着在本地创建Myclass后,将改对象序列化保存..另外,我觉得你既然可以在本地使用Myclass..为什么又要在本地创建object呢??如果真的需要,我觉得你在做client的时候,可以直接将dll添加到client中
      

  4.   

    多谢bingbingcha,我会试试看序列化保存的。如果是直接把dll添加在client中,那每个client端都需要有这个dll,我想的就是把这个MyClass放在server端,然后每个client都可以调用,就好像这个dll在本地一样,这样比较好管理,更新。客户端,服务器端都可以reference到这个dll的目的就是让客户端可以选择到底创建什么样的Object,或者是Local,或者是Remote.
      

  5.   

    如果只有服务器能直接调用MyClass,客户端怎样才能创建一个本地Object,以至于create(name)所建的文件在客户端,而不是服务器端?
      

  6.   

    其实这种时候最方便的就是在客户段添加引用,直接使用MyClass 这个类。而且这样做基本上没有造成额外的不方便,把MyClass所在的项目直接引用过来就行了
      

  7.   

    谢谢charles_y(难得糊涂)。
    直接引用MyClass当然是可以用,但是这样就和.Net Remoting 没有关系了吧,而且这样分散不利于统一更新。用remote的话运行效果可能会受到影响,但是现在不考虑效果,只是想知道可不可能。
      

  8.   

    Net Remoting 设计初衷就是为了操作远程对象的,所以你这样做本来就和Net Remoting 关系不大了
      

  9.   

    呵呵,看来还是设计最重要~
    谢谢bingbingcha(不思不归,不孟不E,原来是头大灰狼) 和charles_y(难得糊涂)