C# 有没有办法“;反映”;ILGenerator。是否从IL代码发出命令?
我试图动态地发出一些我在C#中原型化的通用方法。 基于ILDASM中提供的IL代码,是否有方法生成足够的ILGenerator.Emit()命令序列,最终编译成相同的ILC# 有没有办法“;反映”;ILGenerator。是否从IL代码发出命令?,c#,reflection,reflection.emit,C#,Reflection,Reflection.emit,我试图动态地发出一些我在C#中原型化的通用方法。 基于ILDASM中提供的IL代码,是否有方法生成足够的ILGenerator.Emit()命令序列,最终编译成相同的IL 谢谢你的帮助 FWIW:我倾向于手工操作,但我看到了一个.NET Reflector插件,听起来它可以做你想做的事情:。我一直很好奇这会起什么作用,但实际上我还没有尝试过。流行的.NET反编译器“”有一个插件: 查找是否要将IL的字符串表示形式从ILDASM转换为实际的IL?否–我想得到如下内容:://Generate-IL-
谢谢你的帮助 FWIW:我倾向于手工操作,但我看到了一个.NET Reflector插件,听起来它可以做你想做的事情:。我一直很好奇这会起什么作用,但实际上我还没有尝试过。流行的.NET反编译器“”有一个插件:
查找是否要将IL的字符串表示形式从ILDASM转换为实际的IL?否–我想得到如下内容:://Generate-IL-Generator-ILGenerator=getterMethodBuilder.GetILGenerator();ilGenerator.DeclareLocal(fieldBuilder.FieldType);ilGenerator.Emit(操作码.Nop);ilGenerator.EmitCall(OpCodes.Callvirt,getterMethodInfo,null)。ilGenerator.Emit(操作码.Ret);嗯,它确实生成了Emit代码,但也有一些错误。例如,它使用了禁止的名称CS$0$0000;gen.Emit(OpCodes.Box,T)而不是gen.Emit(OpCodes.Box,typeof(T))等等。但是它确实涵盖了大多数令人沮丧的细节,这种方法非常有用。谢谢