effective c#: 4.使用类厂(class factory)模式实现
陈铭 microsoft c#/.net asia mvp 【程序编程相关:Beginnerwithc#5】
基于接口的客户激活远程对象(下) 【推荐阅读:Beginnerwithc#6】
简便的分布式应用程序开发无疑是.net平台最引人注目的部分.通过使用.net remoting技术,我们可以轻松的跨越运行环境(context).线程抑或进程的边界,甚至透过internet访问远在他乡的另一台计算机上的某个对象.而且,这种远程访问是近乎透明的——在完成远程对象的一些初始化工作之后,对其方法的调用与普通本地对象几乎完全相同. 【扩展信息:Beginnerwithc#4】 难度:7/10 上 根据生命周期控制方法的不同,.net remoting将远程对象分为服务器激活对象(sao, server activated object)与客户激活对象(cao, client activated object)两种.顾名思义,服务器掌握着sao对象生杀予夺的大权——更具体地说,将由服务器控制实际生成的远程对象的数量以及每个客户请求究竟由哪个远程对象处理;对于cao对象,服务器会根据客户的请求建独立的远程对象,每一个方法调用都会被指派到与这个客户相关联的远程对象上.cao对象的生存周期则是由客户端通过定期更新它与服务器签订的远程对象的“租用协议”来控制的. 让我们先来看一下sao的情形.以下是一个简单的.net remoting sao对象应用的完整程序 : //share.cs, remote object namespace effective.csharp.chapter4 { //must inherit from marshalbyrefobject public class remoteobject : system.marshalbyrefobject { //a very simple method implementation public string sayhello(string name) { return "hello, " + name; } } } //server.cs, server side code using system.runtime.remoting; using system.runtime.remoting.channels;... 下一页