Иллюстрированный самоучитель по Architecture .NET

Использование переключателей для активизации диагностики

Переключатели позволяют проводить мелкоструктурное управление выводом диагностики. Можно использовать класс BooleanSwitch для включения и отключения вывода, основываясь на его свойстве Enabled (Разблокировано).

Класс TraceSwitch предоставляет пять иерархических уровней управления для своего свойства Level (Уровень): TraceLevel::Error (Ошибка), TraceLevel::Warning (Предупреждение), TraceLevel::Info (Информация), TraceLevel::Verbose (Подробно) и TraceLevel::Off (Выключено). Эти значения входят в состав перечисления TraceLevel.

Установка одного из уровней подразумевает, что все более высокие уровни установлены. Например, если установлен уровень в TraceLevel::Warning (Предупреждение), то считается, что активизированы уровни TraceLevel::Error (Ошибка) и TraceLevel::Warning (Предупреждение).

DebugBooleanSwitch › Enabled = true; // истина Debug::WriteLinelf(
DebugBooleanSwitch › Enabled,
"Debug Boolean Switch enabled!");
TraceLevelSwitch › Level = TraceLevel::Warning; // Уровень = Предупреждение
Trace::WriteLinelf(
TraceLevelSwitch › TraceError, "TraceError!"); Trace::WriteLinelf(
TraceLevelSwitch › TraceWarning, "TraceWarning!"); Trace::WriteLinelf(
TraceLevelSwitch › TraceInfo, "InfoMessage!"); Trace::WriteLinelf(
TraceLevelSwitch › TraceVerbose, "VerboseMessage!");

Конструкторы для этих переключателей принимают два параметра. Первый из них – это имя переключателя, а второй – текстовое описание переключателя. Классы BooleanSwitch и TraceSwitch являются производными от абстрактного класса Switch (Переключатель). Наследованием из класса Switch (Переключатель) можно создать и собственные классы переключателей.

Заметим, что свойство Enabled (Разблокировано) класса BooleanSwitch и свойство Level (Уровень) класса TraceSwitch не являются членами класса Switch (Переключатель).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.