Set property Nullable<> durch Reflexion

Ich versuchen, eine Nullable<> Eigenschaft dynamicly.

Bekomme ich meine Eigenschaft ex :

PropertyInfo property = class.GetProperty("PropertyName"); //My property is Nullable<> at this time So the type could be a string or int

Möchte ich mein Eigentum durch Reflexion wie

property.SetValue(class,"1256",null);

Funktioniert es nicht, wenn mein Eigentum ist ein Nullable<> Generic. Also versuche ich einen Weg finden, mein Eigentum.

Wissen, die Art meiner nullable<> Eigenschaft, die ich ausführen

Nullable.GetUnderlyingType(property.PropertyType)

Irgendeine Idee ?

  • Ich Versuche, eine Instanz zu schaffen, meine Nullable<> Immobilie mit

    var nullVar = Activator.CreateInstance(typeof(Nullable<>).MakeGenericType(new Type[] { null-Werte zu.GetUnderlyingType(Eigenschaft.Art der Unterkunft) }));

Aber nullVar ist immer Null

Funktioniert es, wenn Sie einen integer anstelle eines Strings? "1256" ist ein string, kein integer.
Es wird funktionieren, aber der Punkt ist, ich weiß nicht, die Art der nullable-Eigenschaft. Könnte ich null-Werte zu.GetUnderlyingType(Eigenschaft.Art der Unterkunft), um den Typ
Nullable<> nicht verwenden string für den zugrunde liegenden Typ als string ist ein Referenz-Typ. In anderen Worten typeof(Nullable<>).MakeGenericType(t); wird in Ordnung sein, wenn t == typeof(int), aber es wird explodieren (constraint nicht erfüllt) mit t == typeof(string). So Nullable<> wird nicht in irgendeiner Weise zu handeln als eine Art "common type" für Referenz-Typen und nullable value types.

InformationsquelleAutor Cédric Boivin | 2009-09-28

Schreibe einen Kommentar