精通_NET核心技术-高级特性(一)
begin:2009-4-1
dll:
namespace HelloRemotin
{
public class SayHello:MarshalByRefObject
{
public string Hello(string pString)
{
Console.WriteLine("远程传入的信息:{0}",pString);
return "Hello";
}
}
}
client:
static void Main(string[] args)
{
TcpChannel tcp = new TcpChannel();
ChannelServices.RegisterChannel(tcp);
SayHello sa = (SayHello)(Activator.GetObject(typeof(SayHello), "tcp://127.0.0.1:8010/SayHello"));
if (sa == null)
{
Console.WriteLine("不能定位到远程服务");
}
else
{
Console.WriteLine(sa.Hello("Hello,我是老鹰"));
}
}
server:
static void Main(string[] args)
{
TcpChannel tcp = new TcpChannel(8010);
ChannelServices.RegisterChannel(tcp);
RemotingConfiguration.RegisterWellKnownServiceType(Type.GetType("HelloRemotin.SayHello,HelloRemotin"), "SayHello", WellKnownObjectMode.SingleCall);
Console.WriteLine("按<enter>退出");
Console.Read();
}
------------------------
当链接服务器激活对象时,不能执行带参数的构造函数.
.net remoting 见系列.