服务器激活的对象是其生存期由服务器直接控制的对象。服务器应用程序域只有在客户端在对象上进行方法调用时才创建这些对象,而不会在客户端调用 new(在 Visual Basic 中为 New())或 Activator.GetObject 时创建这些对象;这节省了仅为创建实例而进行的一次网络往返过程。客户端请求服务器激活的类型实例时,只在客户端应用程序域中创建一个代理。然而,这也意味着当您使用默认实现时,只允许对服务器激活的类型使用默认构造函数。若要发布其实例将使用带参数的特定构造函数创建的类型,可以使用客户端激活或者动态地发布您的特定实例。

解决方案 »

  1.   

    首先我不是高手,我也正研究remote
    你好像把客户端激活和服务端激活说反了.服务器激活在客户端可以用Activator.GetObject创建已知对象的代理(客户端只保留接口),也可以使用new(客户端同时保留接口和实现),还有其他方法;而客户端激活在客户端先用Activator.CreateInstance创建实例.服务端激活:1.singlecall 对象在服务器激活后,被调用一次,最后销毁,所以方法间不保留状态.
               2.singleton 在服务端只创建一个对象,并被所有客户端共享,
    客户端激活:在服务端为每个客户端单独创建一个对象,并可以保留状态,直到对象销毁.