学习笔记--Remoting学习
最近接受到一个项目需要用Remoting通信,主要是通过服务端操作数据库。
第一步:建立一个服务端与客户端公用的DAclass<数据库操作类>
[Serializable]
public class DAclass:System.MarshalByRefObject
{
//数据库操作方法
}
第二步:创建服务端通信类Remoting
private class Server
{
public Server()
{
DAclass da = new DAclass();
//本例使用http信道
HttpChannel hc = new HttpChannel(port);//port 端口号
ChannelServices.RegisterChannel(hc, false);
//typeof(DAclass), 需要注册的对象
//"SGP" 一个标识可自定义
//WellKnownObjectMode.SingleCall 注册对象的访问方式,本例为每个客户端连到server都会创建一个注册对象
RemotingConfiguration.RegisterWellKnownServiceType(typeof(DAclass), "SGP", WellKnownObjectMode.SingleCall);
//...
}
}
第三步:创建客户端通信类Reqest
public class Reqest
{
private DAclass obj_Da = null;
public DAclass OBJ_DA
{
get{return obj_Da;}
}
public Reqest()
{
//ServerIP server端的ip地址
//Port server端口号
string str_HttpServer = "http://" + ServerIP + ":"+ Port + "/SGP";
//获取服务端对象
OBJ_DA = (DAClass)Activator.GetObject(typeof(DAClass), str_HttpServer);
}
//...可利用服务端对象操作,来访问数据库。
}