当前位置: 代码迷 >> ASP.NET >> PropertyInfo.SetValue方法为对象的一个Enum类型的属性赋值,该如何解决
  详细解决方案

PropertyInfo.SetValue方法为对象的一个Enum类型的属性赋值,该如何解决

热度:9239   发布时间:2013-02-25 00:00:00.0
PropertyInfo.SetValue方法为对象的一个Enum类型的属性赋值
PropertyInfo.SetValue方法为对象的一个Enum类型的属性赋值时就会出现类型转换失败的错误。求教高手这个问题如何解决!!


十分感谢!

------解决方案--------------------------------------------------------
private void GetReaderToObject(IDataReader reader, object targetObj)
{
for (int i = 0; i < reader.FieldCount; i++)
{
string columnName = reader.GetName(i); //获取字段名称
object columnValue = reader.GetValue(i); //字段值
PropertyInfo property = targetObj.GetType().GetProperty(columnName); //获取实体对象属性
if (property != null)
{
if (columnValue != DBNull.Value)
{
if (property.PropertyType.IsEnum) //属性类型是否表示枚举
{
object enumName = Enum.ToObject(property.PropertyType, columnValue);
property.SetValue(targetObj, enumName, null); //获取枚举值,设置属性值
}
else
{
property.SetValue(targetObj, columnValue, null);
}
}
}

}
}
  相关解决方案