先上一个自己写的一个用Remoting实现的分布式应用小例子(这里面没有考虑通道加密等等的什么高技术,只是基础)
先新建一个空的解决方案(打开vs——文件——新建——项目——其他项目类型——vistualstudio解决方案——空白解决方案——(名称改为RemoteSampleProject))
①:接口(右击解决方案——添加——新建项目——vistualC#——类库——(名字改为IRemoteSample))
默认的类是Class1.cs文件,重命名改为IRemoteObject,或者删掉class1.cs文件,新建一个类为IRemoteObject
②:实现接口类(右击解决方案——添加——新建项目——vistualC#——类库——(名字改为RemoteSample))
默认的类是Class1.cs文件,重命名改为RemoteSample,或者删掉class1.cs文件,新建一个类为RemoteSample
添加①接口类库的dll(右击RemoteSample下引用——添加引用——项目——IRemoteSample)
③:服务端(右击解决方案——添加——新建项目——vistualC#——类库——(名字改为RemoteSampleServer),右击RemoteSampleServer项目——属性——输出类型改为控制台应用程序)
默认的类是Class1.cs文件,重命名改为RemoteServer,或者删掉class1.cs文件,新建一个类为RemoteServer
添加System.Runtime.Remoting引用(右击RemoteSampleServer下引用——添加引用——.NET——找到System.Runtime.Remoting——确定)
添加①接口类库的dll(右击RemoteSampleServer下引用——添加引用——项目——IRemoteSample)
添加②实现接口类库的dll(右击RemoteSampleServer下引用——添加引用——项目——RemoteSample)
③:客户端(右击解决方案——添加——新建项目——vistualC#——类库——(名字改为RemoteSampleClient),右击RemoteSampleClient项目——属性——输出类型改为控制台应用程序)
默认的类是Class1.cs文件,重命名改为RemoteClient,或者删掉class1.cs文件,新建一个类为RemoteClient
总结:Remoting服务端步骤:新建通道并设置端口——注册通道——激活通道(有点像我们到xx网站注册会员,注册填写信息后要到邮箱激活才能用),即抛出信息,等待客户端调用
Remoting客户端步骤:new一个通道实例——注册该通道实例——通过System.Activator.GetObject访问服务端即可获得服务端抛出信息,注意服务端抛出的是实现类,客户端可以直接定义接口来
接受,有点像IRemoteObjectRemoteObject=newRemoteObject();
等,Ibatis,Remoting上完后我将上一个 Ibatis Remoting 三层架构实现真正分布式应用