利用反射给属性赋值
class Test{
int aa
}
方法 setPropertyValue参数量:(string cProName(属性名),object value(值))
PropertyInfo item = t.GetType().GetProperty(cProName);
if (item == null) return;
item.SetValue(t, Convert.ChangeType(value, item.PropertyType), null);
这样调用时出错
test = new Test();
textBox1.Text="12345";
test.setPropertyValue("aa",textBox1.Text);&&这样value参数为string类型
以下这句报异常
item.SetValue(t, Convert.ChangeType(value, item.PropertyType), null);
异常信息如下:
从“System.String”到“System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]”的强制转换无效
class Test{
int aa
}
方法 setPropertyValue参数量:(string cProName(属性名),object value(值))
PropertyInfo item = t.GetType().GetProperty(cProName);
if (item == null) return;
item.SetValue(t, Convert.ChangeType(value, item.PropertyType), null);
这样调用时出错
test = new Test();
textBox1.Text="12345";
test.setPropertyValue("aa",textBox1.Text);&&这样value参数为string类型
以下这句报异常
item.SetValue(t, Convert.ChangeType(value, item.PropertyType), null);
异常信息如下:
从“System.String”到“System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]”的强制转换无效
if (item.PropertyType.IsGenericType)
item.SetValue(t, Convert.ChangeType(value, item.PropertyType.GetGenericArguments()[0]), null);
else
item.SetValue(t, Convert.ChangeType(value, item.PropertyType), null);