在 C# 中,是否有任何切实可行的方法可以在运行时逐行拦截方法?
感兴趣的具体应用是动态日志记录:
如果方法体内的某些东西抛出异常,那么在随后的执行中,该方法的每一行都将以某种方式记录下来。在编译时不知道哪些特定方法会抛出异常,因此该技术应该能够干扰源代码中的大多数方法(可以事先以某种通用方式准备)
在想象的世界中,拦截器还会公开参数,以便于识别和评估最后一行代码执行的细节。
但考虑到这可能根本不可能,是否有任何粗略的代理可用于此类工具?
一如既往的感激。
最佳答案
我相信唯一接近您想要的是 ELMAH。您可以修改 ELMAH 来做一些事情——所以我想您可以将它用作起点。但是,获得逐行类型功能的唯一方法是编写自己的调试器——在调试信息(你提到的 pdb 文件)中定义的每一行上弹出 int 13——它有很多工作。
使用 ELMAH,您可以看到很多关于系统状态的信息,最重要的是堆栈跟踪。
关于c# - 逐行截取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353471/