Ich versuche, eine Nullable <> Eigenschaft dynamisch festzulegen.Set-Eigenschaft Nullable <> durch Reflexion
ich meine Immobilie ab:
PropertyInfo property = class.GetProperty("PropertyName"); // My property is Nullable<> at this time So the type could be a string or int
Ich mag
mein Eigentum durch Reflexion festlegen möchtenproperty.SetValue(class,"1256",null);
Es funktioniert nicht, wenn mein Eigentum ein Nullable < ist> Allg. Also versuche ich einen Weg zu finden, mein Eigentum zu setzen.
die Art meiner nullable <> Immobilie erfahren i
Nullable.GetUnderlyingType(property.PropertyType)
Jede Idee ausführen?
ich versuchen, eine Instanz meiner Nullable <> Immobilien mit
var nullVar = Activator.CreateInstance (typeof (Nullable <>). Makegenerictype (neu Type [] {Nullable.GetUnderlyingType (Eigenschaft zu erstellen .Art der Immobilie) }));
Aber nullVar ist immer Null
Funktioniert es, wenn Sie eine ganze Zahl anstelle einer Zeichenfolge festgelegt? '" 1256 "' ist eine Zeichenkette, keine Ganzzahl. –
Es wird funktionieren, aber der Punkt ist, ich weiß nicht den Typ der Nullable-Eigenschaft. Ich könnte Nullable.GetUnderlyingType (property.PropertyType) verwenden, um den Typ –
'Nullable <>' kann 'string' für den zugrunde liegenden Typ nicht verwenden, da' string' ein Referenztyp ist. Mit anderen Worten 'typeof (Nullable <>) .MakeGenericType (t);' ist in Ordnung, wenn 't == typeof (int)', aber es wird explodieren (Bedingung nicht erfüllt) mit 't == typeof (string)' . Also wird 'Nullable <> 'in keiner Weise als eine Art" gemeinsamer Typ "für Referenztypen und Nullwerttypen fungieren. –