在两个远程对象之间设置双向通信线路时的循环引用

时间:2010-05-24 19:55:38

标签: c# remoting circular-dependency

我正在使用.Net远程处理在两个对象之间建立双向通信线路。基本结构如下:

Instances of RemoteObjectA call methods on StaticObjectA.
Instances of RemoteObjectB call methods on StaticObjectB.
StaticObjectA needs to be able to call methods provided by RemoteObjectB.
StaticObjectB needs to be able to call methods provided by RemoteObjectA.

此设置的问题是RemoteObjectA中的循环引用获取StaticObjectA获取RemoteObjectB获取StaticObjectB获取RemoteObjectA ...

我实现了一个接口IRemoteObjectA和IRemoteObjectB,并且远程对象来自各自的接口,但是然后设置远程处理失败。

如果这个问题的解决方案是:“不要使用远程处理”,我可以解决这个问题。只是想确保我没有错过一个简单的解决方案。

1 个答案:

答案 0 :(得分:0)

想出来。

诀窍是为静态对象创建一个接口。因此,StaticObjectA和RemoteObjectA都获得IStaticObjectA,而StaticObjectB和RemoteObjectB都获得IStaticObjectB。这样,StaticObjectA可以获得RemoteObjectB,而StaticObjectB可以获得没有循环依赖的RemoteObjectA。