Компиляторы .NET (например, csc.exe, vbc.exe) используют Reflection.Emit ()? - PullRequest
2 голосов
/ 10 августа 2010

Я играл с Reflection.Emit () для сборки некоторых сборок. Мне любопытно, если этот подход используется компиляторами доставки. EXE-файл компилятора не является управляемым кодом, поэтому я подозреваю, что они записывают IL напрямую на диск.

Они:

  • используйте Reflection.Emit ()
  • записать сборки, используя низкоуровневые файловые команды
  • что-то еще?

1 Ответ

4 голосов
/ 11 августа 2010

Ни csc.exe, ни vb.exe не используют Reflection.Emit для создания управляемого кода по очевидной причине, что они не записаны в управляемом коде.

Компилятор F # написан на управляемом коде. Для вывода сборок IL используется собственный бэкэнд IL Writer. Однако компилятор F # также поддерживает внутренний интерфейс Reflection.Emit, который используется в F # Interactive (REPL для F #).

Компиляторы IronPython и IronRuby используют Reflection.Emit, в некоторой степени, я считаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...