Provo a impostare dinamicamente una proprietà Nullable <>.Imposta proprietà Nullable <> per riflessione
ricevo la mia proprietà ex:
PropertyInfo property = class.GetProperty("PropertyName"); // My property is Nullable<> at this time So the type could be a string or int
voglio impostare la mia proprietà dalla riflessione come
property.SetValue(class,"1256",null);
non funziona quando la mia proprietà è un Nullable <> generico. Quindi cerco di trovare un modo per impostare la mia proprietà.
di conoscere il tipo di mia nullable <> proprietà eseguo
Nullable.GetUnderlyingType(property.PropertyType)
Qualche idea?
cerco di creare un'istanza della mia Nullable <> proprietà con
var = nullVar Activator.CreateInstance (typeof (Nullable <>). MakeGenericType (nuovo tipo di [] {Nullable.GetUnderlyingType (proprietà .Tipo di proprietà) }));
Ma nullVar è sempre nullo
funziona quando si imposta un intero invece di una stringa? '" 1256 "' è una stringa, non un intero. –
Funzionerà, ma il punto è che non conosco il tipo di proprietà nullable. Potrei usare Nullable.GetUnderlyingType (property.PropertyType) per ottenere il tipo –
'Nullable <>' non posso usare 'string' per il tipo sottostante poichè' string' è un tipo di riferimento. In altre parole 'typeof (Nullable <>). MakeGenericType (t);' andrà bene se 't == typeof (int)', ma esploderà (vincolo non incontrato) con 't == typeof (stringa)' . Quindi 'Nullable <>' non agirà in alcun modo come una sorta di "tipo comune" per tipi di riferimento e tipi di valori nullable. –