Я пишу довольно простой инструмент для генерации кода, и мне нужна возможность конвертировать объекты MSIL (или MethodInfo) в их источник C#. Я понимаю, что Reflector отлично справляется с этим, но у него есть неприятная «особенность» в том, что он только UI.Преобразование метода в источник C# Код
Я знаю, что я мог бы просто сгенерировать строки C# напрямую, используя string.Format для вставки частей переменной, но я действительно предпочел бы иметь возможность создавать методы программно (например, делегат или объект MethodInfo), а затем передавать те методы для писателя, которые преобразуют их в C#.
Кажется немного глупым, что системные библиотеки позволяют легко перейти от исходной кодовой строки C# к скомпилированному (и исполняемому) методу во время выполнения, но невозможно перейти от объекта к исходному коду - даже для простые вещи.
Любые идеи?
привет. CodeDom полезен при генерации кода, но он не поддерживает синтаксический анализ исходного кода на объект CodeDom. –
@DavidDao Вы можете использовать Roslyn для этого. –