Che cosa ha causato l'eccezione NullReferenceException in WpfXamlLoader.TransformNodes ()?

StackOverflow https://stackoverflow.com/questions/4882416

  •  28-10-2019
  •  | 
  •  

Domanda

Sto cercando di rintracciare un problema che si verifica solo in modalità di rilascio ed è molto probabilmente causato dall'offuscamento non valido di alcune proprietà.So che accade quando si inizializza un controllo specifico, ma questo controllo è enorme.Ho passato una giornata a esaminare tutto XAML e binding e ancora non riesco a vedere cosa sta causando questa eccezione.

Esiste un modo per ottenere maggiori informazioni.Per sapere cosa ha causato questa eccezione?

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()
È stato utile?

Soluzione 2

Non sembra possibile ottenere un messaggio di eccezione più dettagliato.Dividere il problematico XAML in parti più piccole è la strada da percorrere.

Altri suggerimenti

Non conosco un modo per ottenere un messaggio di eccezione più dettagliato, ma potrebbe almeno essere utile ad altre persone conoscerne le possibili cause.Ho appena tracciato un NullReferenceException in WpfXamlLoader.TransformNodes fino a un DependencyProperty che è stato registrato con DependencyProperty.Register(string, Type, Type).Modifica

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

ha risolto il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top