Я занимаюсь проверкой концепции нового языка для платформы .Net. У меня есть вещи с лексингом / парсером, которые в значительной степени отсортированы. Я просто ленивый, я просто собираюсь сгенерировать C # с использованием CodeDom, а не испускать IL на этом этапе, а затем просто скомпилировать это.
Однако, чтобы сгенерировать правильный C # для моего синтаксиса, мне нужно иметь все метаданные ссылочных сборок, доступные для «компилятора», чтобы я мог искать все классы, методы, параметры, интерфейсы и т. Д. Какой лучший способ пойти по этому поводу.
Полагаю, я мог бы загрузить все сборки в их собственный домен приложений и запросить их через отражение, но это кажется немного неуклюжим. Другой способ, который, я думаю, состоит в том, чтобы извлечь все метаданные во что-то, что можно легко и качественно загрузить и запросить.
Другим способом было бы загрузить файлы метаданных XML из системного каталога .Net framework, но это тоже выглядит немного неуклюже
Кажется, это должно быть проблемой, которую должен решать сам компилятор по умолчанию, я что-то упускаю из-за этого очевидного способа сделать это?
EDIT
Эти метаданные CCI могут быть способом сделать это, но все же любопытно, как это делает компилятор