Определение константы TRACE в .NET / Visual Studio

В Visual Studio 2010, если зайти в свойства проекта и перейти на вкладку Build, есть флажок "Define TRACE Constant". Что эквивалентно выполнению #define TRACE.

Все методы System.Diagnostics.Trace имеют [Conditional("TRACE")] вокруг них.

Мой вопрос в том, зачем вам вообще отключать это? Я имею в виду, что если у вас нет определенных слушателей трассировки, то это не значит, что вы собираетесь заполнить журнал или что-то в этом роде. Мне это кажется странным. Если вы прикладываете усилия для размещения вызовов Trace, почему вы не хотите управлять им через App/Web.config, а хотите управлять им через переключатель компилятора, что исключает возможность включить его обратно без перекомпиляции.

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

41
задан aquinas 28 November 2011 в 22:04
поделиться