【问题标题】:.NET Remoting - Question about RegisterWellKnownServiceType and activation of remote object.NET Remoting - 关于RegisterWellKnownServiceType 和远程对象激活的问题
【发布时间】:2023-10-22 11:00:01
【问题描述】:

我有 2 个应用程序 A1 和 A2,它们之间有 HttpChannel。还有 2 个继承自 MarshalByRefObject 的类 - CObj1 和 CObj2。

A1:

Cobj1 obj1 = new CObj1();

RemotingConfiguration.RegisterWellKnownServiceType(
                   typeof(CObj1), "CObj1", WellKnownObjectMode.Singleton);

A2:

Cobj2 obj2 = new CObj2();

string _url = string.Format("http://{0}:{1}/CObj1", host, port);

CObj1 remObj1 = ((CObj1)(Activator.GetObject(typeof(CObj1), _url)));

remObj1.Method1(obj2);

问题是:之后我可以在 A1 中使用 obj2 吗?即使我不需要通过 Activator.GetObject 获取 CObj2,我是否需要任何 RegisterWellKnown...?在那种情况下,obj2 是在哪里激活的?

很抱歉,我自己找不到答案。

【问题讨论】:

    标签: c# .net remoting


    【解决方案1】:
    • 据我所知,您可以使用 Obj2 上的服务器对象方法 '方法1'。你不需要任何种类 激活。
    • 保持对象 -Obj2- 在中间 在客户端序列化,并且 然后在服务器上反序列化,所以 它完全不是同一个对象。
    • 对象上的更改可以是 来回复制(使用'ref')。

    希望对你有帮助

    【讨论】:

      最近更新 更多