Удаление отключенных MarshalByRefObjects из списков на стороне сервера

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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам