Я знаю, что метаданные сборок .net хранятся в табличной форме, как описано в ECMA-335. Кто-нибудь разработал способ запроса этих данных, используя SQL-подобный язык (или любой другой язык запросов!)?
Причина, по которой я хочу это сделать, состоит в том, чтобы задавать вопросы о базе кода, такой как:
- Дайте мне имена классов и имена полей, в которых тип T встречается как поле.
- Дайте мне количество классов, в которых есть хотя бы одно поле с типом оценки и хотя бы одно поле с ссылочным типом.
- Дайте мне количество вхождений этого типа в качестве поля.
Одним из решений может быть чтение таблиц из сборки и загрузка их в базу данных SQL, но это кажется большой работой, если никто не делал этого раньше.