Laden...

XML Deserialisierung: Wie Null Reference Exception verhindern ?

Erstellt von micha0827 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.439 Views
M
micha0827 Themenstarter:in
85 Beiträge seit 2015
vor 6 Jahren
XML Deserialisierung: Wie Null Reference Exception verhindern ?

verwendetes Datenbanksystem: XML

Hallo,
ich habe vor eine ziemlich große XML Datei zu deserialisieren. Die Klasse habe ich erstellt, funktioniert auch sehr gut, nur bei der Ausgabe (Razor View) des Objects gibt es Ausnahmefehler weil nicht alle Felder des Objects befüllt sind. Gibt es eine elegante Variante, dass ich mir das einzelne Abprüfen auf null bei jedem Feld sparen kann ? Vielleicht bei der Deserialisierung dem entsprechenden Feld einen leeren Wert zuweisen wenn in der XML Datei kein Wert vorhanden ist ?

Danke für die Hilfe
Michael

5.658 Beiträge seit 2006
vor 6 Jahren

Hi micha0827,

was hat die Anzeige der Daten in der View mit der Deserialisierung zu tun? Wenn die Daten nach bestimmten Regeln geändert werden sollen, dann ist das Teil der Business-Logik. Wenn du in der View Werte anzeigen willst, die null sein können, dann mußt du diese halt prüfen, damit es keine NullReferenceException gibt. Evtl. hilft dir dabei auch Null-conditional Operators weiter.

Weeks of programming can save you hours of planning

T
461 Beiträge seit 2013
vor 6 Jahren

verwendetes Datenbanksystem: XML

Hallo,
ich habe vor eine ziemlich große XML Datei zu deserialisieren. Die Klasse habe ich erstellt, funktioniert auch sehr gut, nur bei der Ausgabe (Razor View) des Objects gibt es Ausnahmefehler weil nicht alle Felder des Objects befüllt sind. Gibt es eine elegante Variante, dass ich mir das einzelne Abprüfen auf null bei jedem Feld sparen kann ? Vielleicht bei der Deserialisierung dem entsprechenden Feld einen leeren Wert zuweisen wenn in der XML Datei kein Wert vorhanden ist ?

Danke für die Hilfe
Michael

Zudem kann es zu Problemen führen, wenn du statt 'null' einfach einen Leerstring nimmst, da im Grunde auch Leerstrings gültige Werte in einer "Datenbank" sein können.

Wenn du das jetzt nur für die Anzeige so umsetzen möchtest, hättest unter Umständen später andere gravierendere Probleme.

IMMER Daten, Logik und Anzeige getrennt behandeln, nie auf so eine Art mischen... In deinem Fall müßte sich der Anzeige-Bereich um dieses Problem kümmern. (Vielleicht sogar visuell dargestellt, daß der Wert 'null' ist oder ähnliches...)

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄

3.003 Beiträge seit 2006
vor 6 Jahren

Vielleicht bei der Deserialisierung dem entsprechenden Feld einen leeren Wert zuweisen wenn in der XML Datei kein Wert vorhanden ist ?

Andersrum wird ein Schuh draus. Du könntest im Schema zum XML festlegen, dass die Werte nicht null (== vorhanden) sein müssen.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)