Wie können Sie eine Eigenschaft einer Untereigenschaft zuordnen, die möglicherweise null ist?
z. B. schlägt der folgende Code mit einer NullReferenceException fehl, da die Benutzereigenschaft des Kontakts null ist.
%Vor%Ich möchte den Benutzernamen von ContactModel stattdessen auf eine leere Zeichenfolge zurücksetzen.
Ich habe die NullSubstitute-Methode versucht, aber ich nehme an, dass versucht wird, mit User.Username und nicht nur mit der User-Eigenschaft zu arbeiten.
Sie könnten den Zuordnungscode wie folgt schreiben:
%Vor% Dies überprüft, ob User
null ist oder nicht und weist dann entweder eine emptpy Zeichenfolge oder die UserName
zu.
Wenn Sie feststellen, dass Sie wie in Daves Antwort eine Menge Null-Prüfungen durchführen, könnten Sie in Erwägung ziehen, die Technik anzuwenden, über die ich vor einiger Zeit gebloggt habe: Beseitigung von Null-Checks in Immobilienketten . So können Sie dies schreiben:
%Vor% Eine Lösung, die ich verwendet habe, besteht darin, einen Abschluss um den ursprünglichen Delegaten zu erstellen, der ihn in einen try / catch-Block einfügt. Es ist leider notwendig, Expression.Compile()
zu verwenden, um zu verhindern, dass Visual Studio die Ausnahme abfängt, wenn sie in den ursprünglichen Delegaten geworfen wird. Wahrscheinlich nicht in Hochleistungsumgebungen empfohlen, aber ich hatte nie Probleme, es in normalen UI-Sachen zu verwenden. Ihr Kilometerstand kann variieren.
Tags und Links c# automapper