Pregunta

Estoy tratando de localizar un problema que solo ocurre en el modo de lanzamiento y que probablemente sea causado por la ofuscación no válida de alguna propiedad.Sé que sucede al inicializar un control específico, pero este control es enorme.Pasé un día revisando todos los XAML y enlaces y todavía no puedo ver qué está causando esta excepción.

¿Hay alguna forma de obtener más información?¿Para saber qué causó esta excepción?

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

Solución 2

No parece posible obtener un mensaje de excepción más detallado.Dividir el XAML problemático en partes más pequeñas es el camino a seguir.

Otros consejos

No conozco una forma de obtener un mensaje de excepción más detallado, pero al menos podría ser útil para otras personas conocer las posibles causas.Acabo de rastrear un NullReferenceException en WpfXamlLoader.TransformNodes hasta un DependencyProperty que se registró con DependencyProperty.Register(string, Type, Type).Cambiando

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

a

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

solucionó el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top