. Net Remoting体系结构(2) 远程对象 编程方式

1 创建服务器通道

  并在.Net Remotion运行时注册该通道

  注册一个知名对象\客户端激活对象

 

 1            TcpServerChannel channel = new TcpServerChannel(9000);
 2 
 3             ChannelServices.RegisterChannel(channel, false);
 4             //远程对象1 知名对象
 5             //WellKnownServiceTypeEntry remObj = new WellKnownServiceTypeEntry(
 6             //    typeof(MyRemoteObject), "MyRemoteObject", 
 7             //    WellKnownObjectMode.Singleton);
 8            //RemotingConfiguration.RegisterWellKnownServiceType(remObj);
 9 
10             //远程对象2 客户端激活对象
11             ActivatedServiceTypeEntry remObj = new ActivatedServiceTypeEntry(
12                  typeof(MyRemoteObject));
13             RemotingConfiguration.RegisterActivatedServiceType(remObj);
14             
15             Console.ReadKey();

 

2 客户端端

  

 1             TcpClientChannel channel = new TcpClientChannel();
 2                 ChannelServices.RegisterChannel(channel,false);
 3                 //方式 1  知名对象
 4                 //WellKnownClientTypeEntry entry = new WellKnownClientTypeEntry(typeof(MyRemoteObject),
 5                 //    "tcp://localhost:9000/MyRemoteObject");
 6                 //RemotingConfiguration.RegisterWellKnownClientType(entry);
 7                 //MyRemoteObject obj = new MyRemoteObject();
 8                
 9                 //方式 1 客户端激活对象 调用默认无参构造
10                 //ActivatedClientTypeEntry entry = new ActivatedClientTypeEntry(
11                 //   typeof(MyRemoteObject), "tcp://localhost:9000");
12                 //RemotingConfiguration.RegisterActivatedClientType(entry);
13                 //MyRemoteObject obj = new MyRemoteObject();
14 
15                 
16                 //方式 2 知名对象
17                 //MyRemoteObject obj = (MyRemoteObject)Activator.GetObject(typeof(MyRemoteObject),
18                 //    "tcp://localhost:9000/MyRemoteObject");
19 
20                 //方式 2 客户端激活对象 调用有参构造
21                 MyRemoteObject obj = (MyRemoteObject)Activator.CreateInstance(
22                     typeof(MyRemoteObject), new Object[]{333}, new object[]{new UrlAttribute("tcp://localhost:9000")});
23                 Console.WriteLine(obj.Hello());
24                 Console.WriteLine(obj.Hello());     

 

posted @ 2015-12-07 10:37  缘续成  阅读(224)  评论(0编辑  收藏  举报