C # Строковое представление метода - PullRequest
5 голосов
/ 25 июня 2009

Есть ли в .NET 3.0 (или более ранней версии) способ получить строковое представление метода? Я знаю, что могу получить байтовый массив IL из объекта MethodBody, но мне интересно получить строку, которая, по сути, представляет тело метода в том виде, в котором оно выглядит на мой взгляд в VS.

Я покопался в пространстве имен CodeDom, чтобы посмотреть, есть ли способ конвертировать методы в CodeMemberMethods во время выполнения, но я до сих пор дошел до конца.

Есть мысли?

Ответы [ 2 ]

12 голосов
/ 25 июня 2009

Это очень сложная работа. По сути, вы хотели бы переписать отражатель в своем коде ... и не забывать, что не все IL могут быть полностью изменены.

Краткий ответ: «Нет, ничего не встроено».

Даже деревья выражений (из лямбд) не могут быть полностью легко возвращены к соответствующим строкам.

2 голосов
/ 25 июня 2009

Попробуйте поиграть с рефлектором API (возможно, вы захотите проверить, доступно ли оно после того, как Red Gate завладел им).

Тем не менее, даже если вам это удастся, вы потеряете некоторую исходную информацию, такую ​​как имена локальных переменных, комментарии или некоторое форматирование.

В основном все, что выбрасывается во время компиляции, теряется навсегда.

...