Remoting 在服务器端和客户端激活的激活方式

一、客户端激活方式

  服务器端实现:

    TcpChannel channel = new TcpChannel(9001);

    ChannelServices.RegisterChannel(channel, false);

    RemotingConfiguration.ApplicationName = "ServerObject";
    RemotingConfiguration.RegisterActivatedServiceType(typeof(NetRemotingServer.ServerObject));

  客户端实现:

    TcpChannel channel = new TcpChannel();

    ChannelServices.RegisterChannel(channel,false);
    RemotingConfiguration.RegisterActivatedClientType(typeof(NetRemotingServer.ServerObject), "tcp://localhost:9001/ServerObject");

    NetRemotingServer.ServerObject so = (NetRemotingServer.ServerObject)Activator.CreateInstance(typeof(NetRemotingServer.ServerObject), new object[1] { "aaa" }, null);//或者  NetRemotingServer.ServerObject so = new NetRemotingServer.ServerObject();
    so.WriteName();

二、服务器端激活方式

  服务器端实现:

    TcpChannel channel = new TcpChannel(9001);

    ChannelServices.RegisterChannel(channel, false);

    RemotingConfiguration.RegisterWellKnownServiceType(typeof(NetRemotingServer.ServerObject), "ServerObject", WellKnownObjectMode.SingleCall);
    channel.StartListening(new NetRemotingServer.ServerObject());

  客户端实现:

      TcpChannel channel = new TcpChannel();

    ChannelServices.RegisterChannel(channel,false);
    RemotingConfiguration.RegisterWellKnownClientType(typeof(NetRemotingServer.ServerObject),"tcp://localhost:9001/ServerObject");

    NetRemotingServer.ServerObject so = (NetRemotingServer.ServerObject)Activator.GetObject(typeof(NetRemotingServer.ServerObject), "tcp://localhost:9001/ServerObject");

原文地址:https://www.cnblogs.com/zhaoyx/p/2312869.html