.NET FrameWoek2.0中,新添加一个IpcChannel,它是利用Windows的Ipc(进程间通讯)实现的一个Remoting的Channel,它的速度比Http或Tcp的Channel快很多,但它只能被用在本机不同应用程序域之间的通讯,所以,如果我们的客户端有可能与服务器端在同一个机器上运行时,可以通过注册IcpChannel来提高性能。
下面是一个简单的IpcChannel的示例:
Usingdirectives
#regionUsingdirectives

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Runtime.Remoting;
usingSystem.Runtime.Remoting.Channels;
usingSystem.Runtime.Remoting.Channels.Ipc;

#endregion

namespace
TestIpcChannel

{
classProgram


{
staticvoidMain(string[]args)


{
IpcChannelmyChannel=newIpcChannel("test");
ChannelServices.RegisterChannel(myChannel);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemObject),"RemObject.rem",WellKnownObjectMode.SingleCall);
//服务注册结束,下面是客户端代码
RemObjectobj=(RemObject)(Activator.GetObject(typeof(RemObject),"Ipc://Test/RemObject.rem"));
obj.TestMethod();
Console.ReadLine();
}
}
publicclassRemObject:MarshalByRefObject


{
publicvoidTestMethod()


{
Console.WriteLine("HelloIcpChannel!");
}
}

}
为了便于大家读代码,该程序同时扮演服务器和客户端的角色,可以直接编译执行。
下面是一个简单的IpcChannel的示例:














































