В удаленном взаимодействии .Net, если создается список удаленных объектов, то если удаленная сторона уходит и вы пытаетесь получить доступ к одному из элементов списка, вы получите исключение.
Все хорошо, вы можете попытаться поймать его, но не конец света.
Однако, если вы попытаетесь удалить отключенный MarshalByRefObject
из List<MarshalByRefObject>
, вы получите другое исключение, потому что List.Remove()
использует Object.Equals()
иочистка списка становится невозможной.
Должно ли это быть решено с помощью какой-либо локальной оболочки для объекта MarshalByRefObject
или есть более чистый подход?