Подавить Console.WriteLine для части программы
По какой-то неизвестной мне причине разработчик библиотеки, которую я использую, решил Console.WriteLine
тонны информации всякий раз, когда метод вызывается в библиотеке, по существу, объясняя каждый шаг в том, что происходит.
Это хорошо, но во время разработки мне не нужно постоянно видеть это, поэтому мой вопрос - могу ли я подавить Console.WriteLine
быть использованным, когда я не хочу, чтобы это было? Я все еще хочу иметь возможность увидеть свой собственный Console.WriteLine
с, но не те, что в библиотеке.
Само собой разумеется, у меня нет источника для библиотеки.
С Уважением,
Аляска
1 ответ
Ты можешь использовать Console.SetOut
перенаправить Console.Out
на что-то по вашему выбору (например, что-то, что отбрасывает все входные данные) перед вызовом в эту библиотеку, а затем сделайте то же самое, чтобы вернуть исходное значение. Это будет неловко делать это все время.
Чтобы сделать вещи немного более управляемыми, вы можете создать другой класс, который реализует IDisposable
и используйте это так:
using(new StandardOutSink()) {
// call into the third party library
}
Конструктор StandardOutSink
(который вам нужно написать) перенаправит поток вывода на специально созданный TextWriter
(который вы также должны написать), а затем Dispose
Метод вернул бы его к исходному потоку.