我有一个 C# 代码,我希望 CIL (*.il) 在我对源 C# exe 程序集进行反汇编时包含我的自定义注释。
我如何实现它?
汇编的 IL 操作码不包含注释,因此您无法反汇编并获取注释。基本上你不能这样做。要么共享 IL 源,要么调查 pdb 是否可能用于原始 IL 源。
没有“评论”操作码。
您可以使用 写出任意 IL 操作代码ILGenerator.Emit
,但我认为那里不支持注入注释。
如果您只是为了调试目的而这样做(例如,使搜索更容易),您总是可以添加一个具有描述性名称的未使用变量。例如:
void Main()
{
var a = new A();
}
class A
{
bool this_is_a_comment = false;
}
产量
IL_0001: newobj UserQuery+A..ctor
IL_0006: stloc.0
A..ctor:
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld UserQuery+A.this_is_a_comment
IL_0007: ldarg.0
IL_0008: call System.Object..ctor
IL_000D: nop
IL_000E: ret