Отразить до 5 уровней для недвижимости? - PullRequest
1 голос
/ 26 апреля 2011

Я реализовал CustomTraceListener для использования с Enterprise Library 5. Из метода TraceData мне нужно отсканировать стек на 6 уровней до моего класса, у которого был фактический вызов ведения журнала, мне нужно свойство оттуда. Я не думаю, что хочу подняться на StackFrame, потому что он получает только класс, а не объект, верно? Каков наилучший способ получить нужное мне свойство (string)?

Это на Framework 4.0, спасибо.

1 Ответ

0 голосов
/ 01 мая 2011

Я не думаю, что вы можете получить (параметры) значения из стека .NET из самой программы, только методы, свойства, классы, т. Е. Все, что происходит из метаданных .NET.

Если вы хотите значения, вот несколько решений:

  • инструмент вашего кода перед компиляцией, добавление строк кода для захвата значений параметров
  • используйте ваш код после компиляции, например, PostSharp (заявление об отказе: я никак не связан)
  • написать профилировщик .NET, но это должна быть внешняя программа. Существуют инструменты, которые уже делают это, как этот: CLR profiler . Версия 4 профилировщика CLR (доступна здесь ) поставляется с источником.
...