Debug.Listeners и Trace.Listeners равны по ссылке - PullRequest
0 голосов
/ 11 февраля 2019

Немного поэкспериментировав с классами Debug и Trace, я натолкнулся на тот факт, что Debug.Listeners эквивалентно Trace.Listeners.

Так что это происходит

Console.WriteLine(Debug.Listeners == Trace.Listeners); // true
Console.WriteLine(ReferenceEquals(Debug.Listeners, Trace.Listeners)); // true

Это делает невозможным ведение журнала сообщений отладки и трассировки по-разному.

Это ошибка или функция;и что еще более важно: почему это так работает?

1 Ответ

0 голосов
/ 11 февраля 2019

Да, это особенность (в смысле это задокументировано - Trace.Listeners ).У вас есть список прослушивателей, которые отправляют зарегистрированные сообщения в какое-либо место назначения (окно трассировки, консоль, файл, ...).

Вы можете отдельно контролировать, что операторы Debug.xxx и Trace.xxx делают что-либо, определяя / un-определение соответствующих символов.Обычно ваша сборка "Debug" определяет и DEBUG, и TRACE, тогда как конфигурация "Release" определяет только TRACE символ условной компиляции.Вы можете увидеть это в свойствах проекта на вкладке «Сборка».

...