SetPropertyValue 给对象的属性赋值
作者:C/S框架网|www.cscode.ne  发布日期:2021-06-02 10:52:06
  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





上一篇 下一篇