2010-01-13 2 views
3

Я хочу, чтобы ввести следующую строку в верхней части каждого метода моего приложенияЕсть ли способ ввести код во время сборки?

Trace.WriteLine(this.GetType().Name + "." + "Name of Method"); 

я хотел бы сделать это во время компиляции или время сборки или после сборки - в основном, прежде чем она попадет в руки клиента ,

Возможно ли это?

ответ

4

Вы должны изучить PostSharp, который предназначен для такого рода вещей. Я не знаю, есть ли у этого атрибута именно этот прецедент, но я бы предположил, что его не составит труда написать.

EDIT: Еще одна мысль - попытаться использовать Mono.Cecil, который является бинарным перезаписывающим устройством. Я не использовал его сам, но стоит попробовать.

+0

Я изучил его, но он вызывает ту же самую проблему. Мне пришлось бы пойти и украсить, как тысячу классов. Что представляет собой меньшую проблему, а затем добавление Trace.WriteLine для каждого метода, но по-прежнему много повторяющейся работы, которую я надеюсь автоматизировать. – AngryHacker

1

Да, для этого вы использовали бы атрибуты, и, как сказал Джон, вы можете использовать PostSharp, который является отличным api для удобства работы с атрибутами.