Ответ 1
Классы Debug
и Trace
имеют очень похожие методы. Основное различие заключается в том, что вызовы класса Debug
обычно включаются только в сборку Debug, а Trace включены во все сборки (Debug и Release). Вы можете управлять этим через флагов компилятора DEBUG и TRACE. Если вы посмотрите на документацию для обоих, вы заметите, что ConditionalAttribute
аннотирует методы. Это приводит к тому, что вызовы методов включаются в двоичные файлы только тогда, когда определен соответствующий флаг компилятора. Вы можете определить свой собственный флаг компилятора и использовать его в сочетании с ConditionalAttribute
аналогичным образом. Обратите внимание: если вы используете это, методы не удаляются из скомпилированных двоичных файлов. Сайты вызовов изменены для удаления вызовов методов.