Вопрос интереса ради:
CLR удаляет объекты на основании отсутствия корневых ссылок => он владеет информацией о ссылках между объектами.
Теперь собственно сам вопрос:
Допустим есть 2 объекта.
1 Объект содержит поле, которое ссылается на объект 2.
Можно ли имея на руках второй объект понять, что на него что-то ссылается и получить эту ссылку?
Нет, этой информации нет, т. к. объект знает только свои ссылки на другие объекты. Вы можете её получить, но это сложно.
Смотрите, что делает сборщик мусора. Он знает все корневые объекты. Это статические объекты, а также объекты, ссылки на которые есть в стеке какого-либо из потоков.* Он считает их достижимыми, не подлежащими удалению. Затем, он проходит по ссылкам из уже найденных достижимых объектов, найденные объекты тоже объявляет достижимыми. Затем он обходит вновь определённые достижимые объекты, проходит по их ссылкам, и найденные объекты тоже объявляет достижимыми.
Таким образом, обходя достижимые объекты, сборщик мусора рано или поздно натыкается на ссылку, ведущую из первого объекта во второй. Или не натыкается, если первый объект не достижим.
Повторять этот алгоритм большого смысла нет, т. к. это просто медленно. (И у нас в руках лишь довольно медленная рефлексия.)
Проблему, которая у вас на руках, нужно решать по-другому. Например, заставлять объекты, которым нужен ваш объект №2, регистрироваться самостоятельно.
*ну и объекты, на которые ссылаются всякие GCHandle
'ы
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно отправить POST запрос с параметрами и прочитать html в ответеВот мой метод :
Нужно сделать программу которая показывает: на сколько каждый процесс использует сеть и на какой ИП он отправляет данныеТак сказать аналог...
Доброго дня всем! Очень интересует как поместить внутрь DataGrid несколько TextBox'ов или ComboBox'ов, что бы по ним совершать поиск по строкам или запрос...
Создал приложение в Unity на iOS всё работает, поменял платформу на Android, так всё сразу упало, я сохранял данные при выходе,