Что вызвало исключение NullReferenceException в WpfXamlLoader.TransformNodes ()? - PullRequest
5 голосов
/ 03 февраля 2011

Я пытаюсь отследить проблему, которая возникает только в режиме выпуска и, скорее всего, вызвана неправильной запутыванием какого-либо свойства. Я знаю, что это происходит при инициализации определенного элемента управления, но этот элемент управления огромен. Я провел день, просматривая все XAML и привязки, и до сих пор не могу понять, что вызывает это исключение.

Есть ли способ получить больше информации. Чтобы узнать, что вызвало это исключение?

Exception : System.NullReferenceException
Message   : Object reference not set to an instance of an object.
Source    : PresentationFramework
Help      : 
Stack     :
   at System.Windows.Markup.WpfXamlLoader.TransformNodes(XamlReader xamlReader, XamlObjectWriter xamlWriter, Boolean onlyLoadOneNode, Boolean skipJournaledProperties, Boolean shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, XamlContextStack`1 stack, IStyleConnector styleConnector)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
   at MyClass.InitializeComponent()

Ответы [ 2 ]

5 голосов
/ 21 сентября 2016

Я не знаю, как получить более подробное сообщение об исключении, но другим людям может быть полезно знать возможные причины.Я только что отследил NullReferenceException in WpfXamlLoader.TransformNodes до DependencyProperty, который был зарегистрирован с DependencyProperty.Register(string, Type, Type).Изменение

public static readonly DependencyProperty FooProperty = DependencyProperty.Register(
        nameof(Foo), typeof(object), typeof(Bar));

на

public static readonly DependencyProperty FooProperty = DependencyProperty.Register(
        nameof(Foo), typeof(object), typeof(Bar), new FrameworkPropertyMetadata(null));

решило проблему.

1 голос
/ 02 августа 2012

Не представляется возможным получить более подробное сообщение об исключении.Разделение проблемного XAML на более мелкие части - это путь.

...