После некоторого промедления я наконец приступил к написанию решения моей первоначальной проблемы.
Мое решение использует пользовательский TraceListener
(первоначально предложенный Джоном), который регистрирует в окне вывода. Окно вывода автоматически отображается и покупается на переднем плане при возникновении ошибки.
Вот мой TraceListener
:
public class ErrorLogTraceListener : TraceListener
{
public override void Write(string message)
{
...
}
public override void WriteLine(string message)
{
...
}
}
TraceListener
определено в System.Diagnostics.
Пользовательский TraceListener
должен быть подключен к используемой системе. Официальный способ сделать это - установить что-то в реестре, а затем использовать файл App.config
для настройки TraceListener
.
Однако я обнаружил, что есть намного более простой способ сделать это программно:
ErrorLogTraceListener listener = new ErrorLogTraceListener();
PresentationTraceSources.Refresh();
PresentationTraceSources.DataBindingSource.Listeners.Add(listener);
PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Error;
PresentationTraceSources
также определено в System.Diagnostics
.
Для получения дополнительной информации об источниках трассировки см. Блог Майка Хилберга .
.
У Bea Stollnitz есть некоторая полезная информация о ее блоге .