Postsharp для номеров строк времени компиляции - PullRequest
1 голос
/ 29 марта 2012

Я хотел бы показать номера строк для моих сообщений трассировки.

Пример трассировки: SomeMethodUsingPostSharpOnEntry (строка: 74): завершено выполнение чего-либо.

Я не могу использовать stackframe / trace (решение для отражения во время выполнения и не уверен, будут ли распределены pdb).

Уже рассматривал параметры Microsoft (http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/6a7b021c-ec81-47c5-8f6a-2e280d548f3f) и решения на основе pdb ( Как я могу включить номера строк в трассировку стека без pdb? ).

Есть ли способ получить / сделать эквивалент LINE макроса, используя Postsharp или иным способом?

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Это не большая помощь, но C # 5 получит это через "атрибуты информации вызывающего абонента".Прочтите сообщение в блоге команды C # о C # 5 и VS 11 beta для получения дополнительной информации или см. Документы по этим атрибутам:

2 голосов
/ 29 марта 2012

В PostSharp есть скрытая опция для этого.Во-первых, вы должны выдать сообщение об ошибке, используя правильную перегрузку Message.Write;тот, который принимает MethodInfo, например (или другое MessageLocation).

Затем необходимо включить экспериментальную опцию в параметрах Visual Studio / PostSharp / Experimental.

Наконец, перезапустите Visual Studio.

Это должно привести к тому, что PostSharp определит местоположение MethodInfo, которое вы передаете в качестве аргумента.Эта функция основана на Visual Studio и может быть медленной, поэтому она экспериментальная.

...