Shr*_*ike 11 .net clr diagnostics
我在谈论托管的.NET代码.如果我们运行任何程序并将VS附加到它,我们可以看到调用堆栈中每个方法的参数值.我想创建一个日志记录解决方案,它将记录调用堆栈中每个方法的所有参数值.实际上我需要这个信息,以防发生异常.
我知道可以通过分析API来实现.但我想知道只有托管代码才有可能吗?
更新:好的,可能使用纯.NET,这是不可能的.然后可能有某种非托管代码......重点是从应用程序本身内部执行此操作.在异常的情况下,应用程序可以调用某个库(可能是非托管的),它返回有关调用堆栈中方法值的信息.只是想一想......
参数值不存储在StackFrame实例中.实际上,除非您选择明确地进行记录/记录,否则它们根本不会被记录/记录.
记录这些值的一种显而易见的方法是使用AOP.它肯定意味着成本,但结合日志框架和正确的日志级别,它可能是一种替代方案.您还可以选择仅对基本代码中的某些类型/方法进行检测,其中更可能抛出异常.我可能会选择Postsharp作为其静态编织功能,以发出日志调用.
无论如何,它远不是一个理想的解决方案,但是如果你陷入管理世界,我担心你不会有很多选择.
| 归档时间: |
|
| 查看次数: |
2348 次 |
| 最近记录: |