Wie erhält man den Wert eines Nullable Types durch Reflektion?

7

Mit Reflection muss ich den Wert eines Property von Nullable Type of DateTime

abrufen

Wie kann ich das tun?

Wenn ich propertyInfo.GetValue(object, null) versuche, funktioniert es nicht.

thx

Mein Code:

%Vor%

propertyValue Ergebnis ist immer Null für Nullwerttyp

    
alfdev 04.03.2011, 13:40
quelle

3 Antworten

23

Reflexion und Nullable<T> sind ein bisschen Schmerz; reflection verwendet object und Nullable<T> hat spezielle Boxing / Unboxing-Regeln für object . Wenn Sie also object haben, ist es nicht mehr a Nullable<T> - es ist entweder null oder der Wert selbst .

d. h.

%Vor%

Das macht es manchmal etwas verwirrend, und beachte, dass du das ursprüngliche T nicht von einem leeren Nullable<T> erhalten kannst, da es nur ein% co_de ist %.

    
Marc Gravell 04.03.2011, 13:48
quelle
0

Gegeben einfache Klasse:

%Vor%

Und der Code:

%Vor%

value hat entweder null (wenn .Bar null ist) oder den DateTime-Wert. Welcher Teil davon funktioniert nicht für dich?

    
RQDQ 04.03.2011 13:50
quelle
0

Ich habe es gerade versucht und es hat gut funktioniert:

%Vor%     
Simeon 04.03.2011 13:58
quelle

Tags und Links