У меня есть следующий код:Почему может возникнуть исключение NullReferenceException?
try {
using (var stream = new MemoryStream()) {
var ms = stream;
if (control is DockLayoutManager) {
if (control.Dispatcher == null || control.Dispatcher.CheckAccess()) {
((DockLayoutManager)control).SaveLayoutToStream(ms);
}
}
}
} catch (Exception e) {
log.Error(string.Format("Cannot GetLayout ({0}).", typeName), e);
}
Время от времени я получаю NullReferenceException на линии
((DockLayoutManager)control).SaveLayoutToStream(ms);
Я понятия не имею, почему может быть NullReferenceException на этой линии.
Надеюсь, кто-то может мне помочь.
Положите точку останова на эту линию.Что-нибудь «нуль» в этот момент? Простое использование отладчика может исправить 99,99% от 'NullReferenceException'. –
Не должно быть 'if (control! = Null && control.Dispatcher! = Null && control.Dispatcher.CheckAccess()) {' –
Возможно, это ошибка в 'SaveLayoutToStream'? Показать трассировку стека. –