Remoting的两个疑问。
1. 在客户端访问远程对象用RemotingConfiguration.Configuration和New来实例化时,得到的应该不是远程对象实例,而是本地对象实例吧(因而只能用Activator.GetObject)?
理由:当我并没有启动远程对象时,客户端并没有报错,而且调用的方法分明是运行在本地。如Console.WriteLine("xx")。
2. 在注册委托方法到远程对象的事件时,必须是具体类的方法,而不能只是接口的声明(同时也要把具体类程序集放到远程对象能访问的地方)?
理由:
理由:当我并没有启动远程对象时,客户端并没有报错,而且调用的方法分明是运行在本地。如Console.WriteLine("xx")。
2. 在注册委托方法到远程对象的事件时,必须是具体类的方法,而不能只是接口的声明(同时也要把具体类程序集放到远程对象能访问的地方)?
理由:
IServer server = (IServer)Activator.GetObject(
typeof(IServer),
"http://localhost:555/Server/Server.soap");
User user = (User)Activator.GetObject(
typeof(User),
"http://localhost:666/User/User.soap");
server.Broadcast += new BroadcastEventHandler(user.ReceiveMessage);
server.NewUser("diego");
server.Broadcast -= new BroadcastEventHandler(user.ReceiveMessage);
/*
* // 以下代码有问题,提示不能绑定方法。
IUser user = (IUser)Activator.GetObject(
typeof(IUser),
"http://localhost:666/User/User.soap");
server.Broadcast += new BroadcastEventHandler(user.ReceiveMessage);
server.NewUser("diego");
server.Broadcast -= new BroadcastEventHandler(user.ReceiveMessage);
*/
希望能有人解答一下。typeof(IServer),
"http://localhost:555/Server/Server.soap");
User user = (User)Activator.GetObject(
typeof(User),
"http://localhost:666/User/User.soap");
server.Broadcast += new BroadcastEventHandler(user.ReceiveMessage);
server.NewUser("diego");
server.Broadcast -= new BroadcastEventHandler(user.ReceiveMessage);
/*
* // 以下代码有问题,提示不能绑定方法。
IUser user = (IUser)Activator.GetObject(
typeof(IUser),
"http://localhost:666/User/User.soap");
server.Broadcast += new BroadcastEventHandler(user.ReceiveMessage);
server.NewUser("diego");
server.Broadcast -= new BroadcastEventHandler(user.ReceiveMessage);
*/