服务器激活的对象是其生存期由服务器直接控制的对象。服务器应用程序域只有在客户端在对象上进行方法调用时才创建这些对象,而不会在客户端调用 new(在 Visual Basic 中为 New())或 Activator.GetObject 时创建这些对象;这节省了仅为创建实例而进行的一次网络往返过程。客户端请求服务器激活的类型实例时,只在客户端应用程序域中创建一个代理。然而,这也意味着当您使用默认实现时,只允许对服务器激活的类型使用默认构造函数。若要发布其实例将使用带参数的特定构造函数创建的类型,可以使用客户端激活或者动态地发布您的特定实例。
解决方案 »
- 关于Windows 服务 ServiceBase 的方法 OnShutdown()问题
- MSSQL数据库中有个字段类型为Image C#中应该用什么类型?
- 请教高手解决!!!!!!!!C# Winfrom打印问题,急!!!!!!!!
- C#新手问题
- C#中多窗体之间的数据传递,急!!!!!!!!!!
- using 的问题
- 新手求助:调试异常——不支持关键字: “initial catalog”。
- C#函数多个返回值,除了out ref还有什么做法?
- 如何在readonly=false的情况下不让datagrid自动添加一行?
- 求大神JAVA MD5签名转为C#
- 各位能否跟我说说配件和属性啊,推荐文章也行,谢过~
- 批量改文件名如何实现 1.gif to 2.gif ,2.gif to 3.gif ... n.gif 2 n+1.gif [在线等待]
你好像把客户端激活和服务端激活说反了.服务器激活在客户端可以用Activator.GetObject创建已知对象的代理(客户端只保留接口),也可以使用new(客户端同时保留接口和实现),还有其他方法;而客户端激活在客户端先用Activator.CreateInstance创建实例.服务端激活:1.singlecall 对象在服务器激活后,被调用一次,最后销毁,所以方法间不保留状态.
2.singleton 在服务端只创建一个对象,并被所有客户端共享,
客户端激活:在服务端为每个客户端单独创建一个对象,并可以保留状态,直到对象销毁.