Удаление отключенных MarshalByRefObjects из списков на стороне сервера - PullRequest
2 голосов
/ 22 октября 2011

В удаленном взаимодействии .Net, если создается список удаленных объектов, то если удаленная сторона уходит и вы пытаетесь получить доступ к одному из элементов списка, вы получите исключение.

Все хорошо, вы можете попытаться поймать его, но не конец света.

Однако, если вы попытаетесь удалить отключенный MarshalByRefObject из List<MarshalByRefObject>, вы получите другое исключение, потому что List.Remove() использует Object.Equals() иочистка списка становится невозможной.

Должно ли это быть решено с помощью какой-либо локальной оболочки для объекта MarshalByRefObject или есть более чистый подход?

1 Ответ

0 голосов
/ 22 октября 2013

Решение, которое мы реализовали, заключалось в том, что MarshalByRefObject был обернут / скомпонован в локальный каталог, чтобы список можно было правильно очистить.Proxy Design Pattern - самый чистый способ!

...