C# 复制对象属性 CopyProperties扩展方法
该方法增加判断逻辑: 通过属性的CanRead, CanWrite 判断属性是否可读或可写。
CopyProperties 扩展方法:
C# 全选
/// <summary>
/// 复制对象属性
/// </summary>
/// <param name="objThis"></param>
/// <param name="sourceObj"></param>
public static void CopyProperties(this object objThis, object sourceObj)
{
//参数检查
if (objThis == null || sourceObj == null || objThis == sourceObj) return;
//获取对象属性列表
PropertyInfo[] listThis = objThis.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
PropertyInfo[] listSource = sourceObj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
foreach (PropertyInfo pThis in listThis)
{
PropertyInfo pSource = listSource.FirstOrDefault((PropertyInfo a) => a.Name.ToLower() == pThis.Name.ToLower());
//重要!判断属性可读或可写
if (pThis.CanWrite && pSource != null && pSource.CanRead)
{
pThis.SetValue(objThis, pSource.GetValue(sourceObj));
}
}
}
使用:
C# 全选
var emp1 = new dt_Employee();
var emp2 = new dt_Employee() { InfoID = "888", Age = 19 };
emp1.CopyProperties(emp2);版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网





