从服务器端列表中删除断开连接的MarshalByRefObjects

时间:2011-10-21 21:46:13

标签: .net collections lifecycle .net-remoting marshalbyrefobject

在.Net远程处理中,如果创建远程对象列表,那么如果远程端消失并且您尝试访问其中一个列表项,则会出现异常。

一切都很好,你可以尝试抓住它,而不是世界末日。

但是,如果您尝试从MarshalByRefObject删除已断开连接的List<MarshalByRefObject>,则会收到另一个例外,因为List.Remove()使用Object.Equals()并且无法清除列表。< / p>

是否可以使用MarshalByRefObject对象的某种局部包装来解决这个问题,或者是否有更清晰的方法?

1 个答案:

答案 0 :(得分:0)

我们实现的解决方案确实将MarshalByRefObject包装/组合在本地,以便可以正确清除列表。代理设计模式是最干净的方式!