Как я могу программно (используя отражение?) Изменить тело метода и сохранить мои изменения обратно на диск - PullRequest
3 голосов
/ 14 мая 2010

Я могу легко добраться до тела метода, используя отражение

Type type = assembly.GetType("Lorem.Ipsum.Dolor.Sit");
MethodInfo methodInfo = type.GetMethod("Amet");
MethodBody methodBody = methodInfo.GetMethodBody();

Как мне программно изменить тело метода и сохранить мои изменения обратно на диск?

Ответы [ 3 ]

3 голосов
/ 14 мая 2010

AFAIK, вы не можете.

С помощью отражения вы изменили объект в памяти, созданный из двоичного файла, загруженного и оптимизированного CLR во время выполнения.

EDIT

Этот вопрос содержит дополнительную информацию по этому вопросу.

Изменение существующих сборок .NET

2 голосов
/ 05 октября 2013

Еще одна хорошая библиотека для этого: https://bitbucket.org/0xd4d/dnlib

Обрабатывает запутанные сборки гораздо лучше, чем Mono.Cecil.

1 голос
/ 14 мая 2010

Вы не можете сделать это без сторонних библиотек. взгляните на: http://www.mono -project.com / Cecil

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