C# 打印委托

Tot*_*oto 5 c# reflection delegates

有没有一种简单的方法可以在运行时打印委托的代码?(“包含一种方法”)。

public delegate void SimpleDelegate();

SimpleDelegate delegateInstance = 
           delegate { DoSomeStuff(); int i = DoOtherStuff() };
Run Code Online (Sandbox Code Playgroud)

现在,我想在屏幕上显示 delegateInstance 的主体。也就是说,做一些类似反射器的事情。我可以这样做吗?也许我可以使用一些 .pdb 文件?

Vit*_*sky 4

你可以打印IL,就是这样。.NET Reflector 中可能有一些可重用的组件,您可以使用它们将 IL 转换回 C# 或 VB.NET。

PDB 文件包含行号、非公共类/结构/方法、变量名称。如果您手头有原始的 C# 源代码,您可以尝试通过映射 PDB 文件中的行号来获取代码。