反映物业的5个级别?

时间:2011-04-26 17:41:50

标签: reflection enterprise-library stackframe

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

这是在Framework 4.0上,谢谢。

1 个答案:

答案 0 :(得分:0)

我认为你不能从程序本身的.NET堆栈中获取(参数)值,只有方法,属性,类,即:来自.NET元数据的任何东西。

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

  • 在编译之前检测代码,添加代码行以捕获参数值
  • 在编译后检测您的代码,例如PostSharp之类的内容(免责声明:我不以任何方式加入)
  • 编写.NET分析器,但这必须是外部程序。现有的工具已经实现了这一点,例如:CLR profiler。 CLR分析器的第4版(可用here)附带源代码。