Пройдите по методу c # и аназлите тело метода - PullRequest
8 голосов
/ 05 августа 2010

Какой самый простой способ пройти по methodinfo в c #?

Я хочу пройти по телу метода и найти ссылки на поля и тому подобное и получить типы.

В System.Reflection естьэто:

mi.GetMethodBody().GetILAsByteArray()

, что является своего рода низким уровнем и потребует "некоторой" работы, прежде чем я смогу пройти через тело.

Я знаю, что Сесил существует, но есть проблема взагрузка сборки памяти с помощью cecil.Сборка, с которой я работаю, не всегда "на диске", это может быть сборка в памяти, скомпилированная, например, из.Бу, и я не хочу чистое решение без записи временной сборки на диск.

Какие есть еще альтернативы для этого?

1 Ответ

8 голосов
/ 05 августа 2010

Эта вещь должна помочь: CIL Reader на основе отражения .Он работает с байтовым массивом, полученным путем вызова GetILAsByteArray ()

...