在.Net远程处理中,如果创建远程对象列表,那么如果远程端消失并且您尝试访问其中一个列表项,则会出现异常。
一切都很好,你可以尝试抓住它,而不是世界末日。
但是,如果您尝试从MarshalByRefObject
删除已断开连接的List<MarshalByRefObject>
,则会收到另一个例外,因为List.Remove()
使用Object.Equals()
并且无法清除列表。< / p>
是否可以使用MarshalByRefObject
对象的某种局部包装来解决这个问题,或者是否有更清晰的方法?
答案 0 :(得分:0)
我们实现的解决方案确实将MarshalByRefObject包装/组合在本地,以便可以正确清除列表。代理设计模式是最干净的方式!