日期:2014-05-19  浏览次数:21153 次

请教大家关于remoting 的Singleton方式
这种方式是只有唯一的一个远程对象吧
我的remoting服务端和客户端的配置都是通过配置文件配置的

我先在服务器端new   一个远程对象代码如下:
RemotingManager   rm   =   new   RemotingManager();

然后通过客户端激活远程对象
rm   =   Activator.GetObject
(typeof(RemotingManager),   "http://localhost:7788/Manager.rem ");

跟踪发现会再次调用服务端定义远程对象的构造函数。如果是唯一的远程对象那么就不应该在进入构造函数了啊。

我只有服务端改为如下:
RemotingManager   rm   =   new   RemotingManager();
rm   =   Activator.GetObject
(typeof(RemotingManager),   "http://localhost:7788/Manager.rem ");
rm.Function();

这样客户端激活远程对象的时候才不会调RemotingManager的构造函数。
而且最怪的是我必须在服务器端调一次远程对象的任意一成员函数才能避免客户端调的时候不会去调构造函数。。
而且调这个函数的时候也同样调了远程对象的构造函数。
有人能解释一下这个东西吗?

------解决方案--------------------
microsoft的webcast里有remoting的教程。
------解决方案--------------------
既然是用配置文件的,那么用不着写
rm = Activator.GetObject
(typeof(RemotingManager), "http://localhost:7788/Manager.rem ");
应该这么写:
服务端
RemotingConfiguration.Configure( "你的配置文件 ");
System.Console.ReadLine();

客户端
RemotingConfiguration.Configure( "你的配置文件 ");
RemotingManager rm = new RemotingManager();
然后就能用了

教程在http://www.msdnwebcast.com.cn/CourseSeries.aspx?id=57
有demo下载,不过好像要注册的
------解决方案--------------------

------解决方案--------------------
你怎么不像是用配置文件 写的啊`

要是用配置文件 的话,可以直接去用RemotingConfiguration来获取的`

------解决方案--------------------
直接从配置文件取呀