您的位置:首页 > 其它

利用反射给对象中的某个属性赋值或取值

2013-07-19 14:15 246 查看
//Using System.Linq;引用命名空间
/// <summary>
/// 利用反射根据对象和属性名取对应属性的值
/// </summary>
/// <param name="feildname"></param>
/// <param name="obEntity"></param>
/// <returns></returns>
public string GetValueByPropertyName(string feildname, Object obEntity)
{
string PropertyVaule = string.Empty;
Type tpEntity = obEntity.GetType();
System.Reflection.PropertyInfo[] pis = tpEntity.GetProperties();
var a=pis.FirstOrDefault(m=>m.Name==feildname);
if (a!=null)
{
object obj= a.GetValue(obEntity, null);
if (obj != null)
{
PropertyVaule = obj.ToString();
}
break;

}

return PropertyVaule;
}
/// <summary>
/// 利用反射根据对象和属性名为对应的属性赋值
/// </summary>
/// <param name="feildname"></param>
/// <param name="obEntity"></param>
/// <returns></returns>
public void SetValueByPropertyName(string feildname, Object obEntity,string Value)
{
Type tpEntity = obEntity.GetType();
System.Reflection.PropertyInfo[] pis = tpEntity.GetProperties();
var a=pis.FirstOrDefault(m=>m.Name==feildname);
if (a!=null)
{
a.SetValue(obEntity, Convert.ChangeType(Value,a.PropertyType),null);
return;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: