c# - 逐行截取方法

标签 c# logging methods aop interceptor

在 C# 中,是否有任何切实可行的方法可以在运行时逐行拦截方法?

感兴趣的具体应用是动态日志记录:

如果方法体内的某些东西抛出异常,那么在随后的执行中,该方法的每一行都将以某种方式记录下来。在编译时不知道哪些特定方法会抛出异常,因此该技术应该能够干扰源代码中的大多数方法(可以事先以某种通用方式准备)

在想象的世界中,拦截器还会公开参数,以便于识别和评估最后一行代码执行的细节。

但考虑到这可能根本不可能,是否有任何粗略的代理可用于此类工具?

一如既往的感激。

最佳答案

我相信唯一接近您想要的是 ELMAH。您可以修改 ELMAH 来做一些事情——所以我想您可以将它用作起点。但是,获得逐行类型功能的唯一方法是编写自己的调试器——在调试信息(你提到的 pdb 文件)中定义的每一行上弹出 int 13——它有很多工作。

使用 ELMAH,您可以看到很多关于系统状态的信息,最重要的是堆栈跟踪。

关于c# - 逐行截取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353471/

相关文章:

java - 由于某种奇怪的原因,方法被调用两次?

c# - 如何在 C# 中使用模数、D、指数创建私有(private) RSA key ?

c# - 如何在 XAML 中绑定(bind)到静态属性?

.net - Common.Logging 没有 app.config

hibernate - 在不同的数据库中创建 envers 审计表,最好在不同的事务中完成日志记录

java - Processing 3.0 方法 PVector.get() 已弃用

java - 将数组列表转为数组

c# - 考虑将 WCF 用于日志记录服务...请指教

c# - 在代码隐藏中创建表行

sql-server - 我可以找到对数据库结构/程序进行特定更改的用户吗?