помогите с подсчетом ссылок dll в циклической ситуации ссылки в c # 4.0 - PullRequest
0 голосов
/ 19 сентября 2011

Я поддерживаю большую базу кода, которую я унаследовал (портировал с vb6 на C # .net 1.1, затем на .net 2.0 / c # и т. Д.). У меня есть этот сценарий

Мой основной проект ссылается на две DLL - DLL-A и DLL-B

Ссылки на DLL-B DLL-A. И DLL, и мой основной проект находятся в 3 отдельных пространствах имен.

1) Загружаются ли 2 копии DLL-A в память? (количество ссылок dll)

2) Как узнать, сколько копий .net dll загружено в mem? (какой инструмент обычно используется)

спасибо

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Нет, DLL-A будет загружаться только один раз. Это как все, что ссылается на mscorlib - но загружена только одна его копия.

Если вы не делаете что-то интересное (использование нескольких доменов приложений, загрузка сборок с отражением, одновременное размещение нескольких CLR), вы получите только одну копию ссылки на сборку.

0 голосов
/ 19 сентября 2011

1) Нет. Когда приложение или библиотека (DLL-B) использует тип из DLL-A, оно будет загружено в память.Когда позже он будет использован другим источником, будет использована та же копия.

2) Только одна копия сборки будет загружена в AppDomain вашего процесса.В обычном приложении это означает, что одна копия будет загружена из каждой сборки (т.е. dll), которую вы используете.

Здесь нет "подсчета ссылок".

...