Как я могу получить список типов, загруженных CLR? - PullRequest
0 голосов
/ 18 октября 2018

Получить список типов, определенных в сборке, очень просто: assembly.GetTypes().

Что меня интересует, так это список типов, загруженных в данный момент средой выполнения.Более конкретно, я хотел бы получить список загруженных закрытых универсальных типов.

Я предполагаю, что CLR хранит список загруженных типов.Я думаю, что я мог бы использовать CLR MD, чтобы получить этот список, но я хотел бы получить и использовать список в текущем процессе.Используя CLR MD, мне пришлось бы запустить внешний процесс, захватить список загруженных типов, выгрузить его в файл и затем прочитать его из активного процесса.

Есть ли API отладки или диагностикикоторый предоставляет список загруженных типов для текущего процесса?

1 Ответ

0 голосов
/ 09 августа 2019

В зависимости от того, нужны ли вам все типы во всех доменах приложений или нет, вы можете запросить текущий домен приложений для всех загруженных сборок и запросить их:

from a in AppDomain.CurrentDomain.GetAssemblies()
from t in a.GetTypes()
where t.IsGenericType
select t.FullName
...