У меня есть файл *.il. Я хочу найти в нем все непустые методы (.method). Например:
.class private auto ansi beforefieldinit MyApp.Program
extends [mscorlib]System.Object
{
//catch its body
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
//
.maxstack 8
IL_0000: nop
IL_0001: ret
}
//catch its body
.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
//
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ret
}
//don't touch, it's empty
.method public hidebysig newslot virtual
instance string Invoke(string a) runtime managed
{
}
//......................................
}
Теперь я делаю это, используя строку класса. Это довольно нерационально. Я пытался использовать Regex
, но не мог понять, как создать регулярное выражение, чтобы поймать только
- методы (а не классы)
- только методы с непустым телом
Кто-нибудь может мне помочь?
method.HasBody
? - person Jb Evain   schedule 21.10.2012