Как командлет узнает, когда действительно должен вызвать WriteVerbose()
,
WriteDebug()
и др .?
Возможно, я упускаю что-то простое, но не могу найти ответ. Все командлеты
реализации, которые я видел до сих пор, просто позвоните WriteVerbose()
без каких-либо
нерешительность. Я знаю, что это правильно , но это не эффективно .
Производительность снижается, когда подробный режим отключен, но командлет все еще готовится
данные для WriteVerbose()
звонка, то есть даром.
Другими словами, в командлете я хотел бы иметь возможность:
if (<VerboseMode>)
{
.... data preparation, sometimes expensive ...
WriteVerbose(...);
}
Но я не знаю, как получить это if (<VerboseMode>)
. Есть идеи?
Вывод:
Ответ @ stej показывает, как получить необходимую информацию в теории. На практике это неприлично и вряд ли подходит. Таким образом, если командлет выдает действительно дорогой подробный или отладочный вывод, то разумно ввести дополнительный параметр, определяющий уровни многословия.