GetValue i Reflection driller
Hejsa.Har et reflection spørgsmål.
På en 'Commit' Metode i min Base klasse, som mit objekt nedarver fra forsøger jeg at gøre følgende:
-------------
public void Commit()
{
PropertyInfo[] propertyInfos = typeof(T).GetProperties();
foreach (PropertyInfo propertyInfo in propertyInfos)
{
if (t == typeof(int))
{
int value = Convert.ToInt32(propertyInfo.GetValue(propertyInfo, null)); }
}
}
-------------
Jeg forsøger altså at løbe alle Properties igennem for objektet. Hvis en property er af typen int, så forsøger jeg at trække værdien ud. PropertyInfo er af typen Int32 når jeg debugger mig igennem.
Men når jeg forsøger at sætte value så fejler min kode.
Nogen som kan fortæller mig hvorfor?
System.Reflection.TargetException occurred
Message=Objektet svarer ikke til destinationstypen.
Source=mscorlib
StackTrace:
ved System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)
ved System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
ved System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ved System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
ved System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
ved Commerce.Base.CoreBase`1.Commit() i D:\Projects\VS\Commerce\Base\CoreBase.cs:linje 45
InnerException: