1

我已经实现了一个用于 Enterprise Library 5 的 CustomTraceListener。从 TraceData 方法中,我需要将堆栈爬上 6 层到我的具有实际日志记录调用的类,我需要从那里获得一个属性。我不认为我想要 StackFrame 爬升,因为那只会获取类而不是对象,对吗?获得我需要的(字符串)属性的最佳方法是什么?

这是在框架 4.0 上,谢谢。

4

1 回答 1

0

我不认为您可以从程序本身的.NET 堆栈中获取(参数)值,只能获取方法、属性、类,即:来自.NET 元数据的任何内容。

如果你想要值,这里有一些解决方案:

  • 在编译之前检测您的代码,添加代码行以捕获参数值
  • 编译后检测你的代码,例如PostSharp(免责声明:我不以任何方式附属)
  • 编写一个 .NET 分析器,但这必须是一个外部程序。已经有一个现有的工具可以做到这一点,比如这个:CLR profiler。CLR 分析器的第 4 版(可在此处获得)随源一起提供。
于 2011-05-01T07:24:52.397 回答