是否可以查看/调试 C# 编译器为具有 DllImport 属性的方法生成的代码?我尝试进入在 VS 调试器中使用 DllImport 属性定义的方法,但它不允许我这样做。在反汇编视图中,我可以看到对特定地址的调用指令,但是当我按下 F11 键(步入)时,它只会跳过它。我在项目属性中选中了“启用本机代码调试”复选框。
更新
如果我理解正确,编译器会在看到DllImportAttribute
附加到方法时执行一些操作。DllImportAttribute
我在类文档中找不到任何东西。类的源代码DllImportAttribute
也只有一个非常基本的类定义。在调试器中调用外部函数时,我可以看到一条call FFA0C0C8
汇编指令,当我进入它时,它会立即移动到导入的函数体,但导入的函数的地址与 FFA0C0C8 不同。我无法将反汇编视图更改为该地址。看起来所有的 dll 加载逻辑都在这个函数中,调试器跳过了这个函数。我想知道这是一些库函数还是编译器生成的一些函数?