SetPropertyValue 给对象的属性赋值
SetPropertyValue 给对象的属性赋值
C# Code:
/// <summary>
/// 给对象的属性赋值
/// </summary>
/// <param name="instance">对象实例</param>
/// <param name="prop">对象实例的属性信息</param>
/// <param name="value">其他对象属性的值</param>
public static void SetPropertyValue(object instance, PropertyInfo prop, object value)
{
try
{
if (prop == null) return;
if (prop.PropertyType.IsArray)//数组类型,单独处理
{
if (value == DBNull.Value)//特殊处理DBNull类型
prop.SetValue(instance, null, null);
else
prop.SetValue(instance, value, null);
}
else
{
if (value == null || String.IsNullOrWhiteSpace(value.ToString()))//空值
value = prop.PropertyType.IsValueType ? Activator.CreateInstance(prop.PropertyType) : null;//值类型
else
value = System.ComponentModel.TypeDescriptor.GetConverter(prop.PropertyType).ConvertFromString(value.ToString());//创建对象
prop.SetValue(instance, value, null);
}
}
catch (Exception ex) //报错在此跟踪
{
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// <summary>
/// 给对象的属性赋值
/// </summary>
/// <param name="instance">对象实例</param>
/// <param name="prop">对象实例的属性信息</param>
/// <param name="value">其他对象属性的值</param>
public static void SetPropertyValue(object instance, PropertyInfo prop, object value)
{
try
{
if (prop == null) return;
if (prop.PropertyType.IsArray)//数组类型,单独处理
{
if (value == DBNull.Value)//特殊处理DBNull类型
prop.SetValue(instance, null, null);
else
prop.SetValue(instance, value, null);
}
else
{
if (value == null || String.IsNullOrWhiteSpace(value.ToString()))//空值
value = prop.PropertyType.IsValueType ? Activator.CreateInstance(prop.PropertyType) : null;//值类型
else
value = System.ComponentModel.TypeDescriptor.GetConverter(prop.PropertyType).ConvertFromString(value.ToString());//创建对象
prop.SetValue(instance, value, null);
}
}
catch (Exception ex) //报错在此跟踪
{
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网