2011-02-03 85 views
4

我試圖追蹤一個只發生在發佈模式下的問題,很可能是由某些屬性的無效混淆造成的。我知道這是在初始化特定控件時發生的,但是這個控件是巨大的。我花了一天時間瀏覽所有的XAML和Bindings,但仍然無法看到是什麼導致了這個異常。是什麼導致WpfXamlLoader.TransformNodes()中的NullReferenceException?

有什麼方法可以獲得更多信息。要知道是什麼導致了這個異常?

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() 

回答

1

看起來似乎不可能得到更詳細的異常消息。將有問題的XAML分成更小的部分是要走的路。

3

我不知道獲取更詳細的異常消息的方法,但至少可以讓其他人知道可能的原因。我剛剛跟蹤NullReferenceExceptionWpfXamlLoader.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

你在世界上是如何設法發現的?你達人。我幾個月來一直在解決這個問題,而不知道原因。 – Pat 2017-04-30 21:01:16

相關問題