Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法“;反映”;ILGenerator。是否从IL代码发出命令?_C#_Reflection_Reflection.emit - Fatal编程技术网

C# 有没有办法“;反映”;ILGenerator。是否从IL代码发出命令?

C# 有没有办法“;反映”;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-

我试图动态地发出一些我在C#中原型化的通用方法。 基于ILDASM中提供的IL代码,是否有方法生成足够的ILGenerator.Emit()命令序列,最终编译成相同的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))等等。但是它确实涵盖了大多数令人沮丧的细节,这种方法非常有用。谢谢