#region 根据属性名称,修改实体数据
/// <summary>
/// 根据属性名称,修改实体数据
/// </summary>
/// <typeparam name="T">实体类类型</typeparam>
/// <param name="model">实体类</param>
/// <param name="propname">属性名称</param>
/// <param name="newvalue">更改的值</param>
/// <returns></returns>
public static T ModifybyPropName<T>(T model, string propname, string newvalue)
{
//获取该类型所有属性
PropertyInfo[] pis = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
//遍历属性集合,修改相应属性的值
foreach (PropertyInfo pi in pis)
{
if (pi.Name == propname)
{
try
{
pi.SetValue(model, Convert.ChangeType(newvalue, pi.PropertyType), null);
}
catch { }
break;
}
}
return model;
}
#endregion
#region 根据属性名称,修改实体数据
/// <summary>
/// 根据属性名称,修改实体数据
/// </summary>
/// <typeparam name="T">实体类类型</typeparam>
/// <param name="model">实体类</param>
/// <param name="propname">属性名称</param>
/// <param name="newvalue">更改的值</param>
/// <returns></returns>
public static T ModifybyPropName<T>(T model, List<string> propname, List<string> newvalue)
{
//获取该类型所有属性
PropertyInfo[] pis = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
//遍历属性集合,修改相应属性的值
for (int i = 0; i < propname.Count; i++)
{
foreach (PropertyInfo pi in pis)
{
if (pi.Name == propname[i])
{
try
{
var type = pi.PropertyType;
pi.SetValue(model, Convert.ChangeType(newvalue[i], type.Name == "String" ? pi.PropertyType : pi.PropertyType.GetGenericArguments()[0]), null);
}
catch { }
break;
}
}
}
return model;
}
#endregion
#region 根据属性名称获取对应属性数据
/// <summary>
/// 根据属性名称获取对应属性数据
/// </summary>
/// <typeparam name="T">实体类类型</typeparam>
/// <param name="model">实体类</param>
/// <param name="propname">属性名称</param>
/// <param name="newvalue">更改的值</param>
/// <returns></returns>
public static string GetbyPropName<T>(T model, string propname)
{
string name = "";
//获取该类型所有属性
PropertyInfo[] pis = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
//遍历属性集合,修改相应属性的值
foreach (PropertyInfo pi in pis)
{
if (pi.Name == propname)
{
try
{
name = pi.GetValue(model, null).ToString();
}
catch { }
break;
}
}
return name;
}
#endregion