Pergunta

Estou tentando rastrear um problema que só acontece no modo de liberação e é provavelmente causado pela ofuscação inválida de alguma propriedade.Eu sei que isso acontece ao inicializar um controle específico, mas esse controle é enorme.Passei um dia examinando todo o XAML e Bindings e ainda não consigo ver o que está causando essa exceção.

Existe alguma maneira de obter mais informações.Para saber o que causou essa exceção?

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()
Foi útil?

Solução 2

Não parece possível obter uma mensagem de exceção mais detalhada.Dividir o XAML problemático em partes menores é o caminho a percorrer.

Outras dicas

Não conheço uma maneira de obter uma mensagem de exceção mais detalhada, mas pode pelo menos ser útil para outras pessoas saber as possíveis causas.Acabei de rastrear um NullReferenceException em WpfXamlLoader.TransformNodes até um DependencyProperty que foi registrado com DependencyProperty.Register(string, Type, Type).Mudança

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

para

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

corrigiu o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top