在系統開發過程中
Eg: XXX
雖然可以通過codesmith來生成賦值
特別是當你需要不同實體之間進行相同屬性拷貝時
我在做個java項目時無意發現了一個PropertyUtils類
/// <summary>
/// 對象屬性拷貝(全匹配拷貝)
/// </summary>
/// <param name="obj1">源對象</param>
/// <param name="obj2">目標對象</param>
/// <returns>目標對象</returns>
public static object PropertyCopy(object obj1,object obj2)
{
Type souType=obj1.GetType();
Type tarType = obj2.GetType();
PropertyInfo[] pis=souType.GetProperties(BindingFlags.Public | BindingFlags.Instance);
if(null!=pis)
{
foreach(PropertyInfo pi in pis)
{
string propertyName=pi.Name;
PropertyInfo pit=tarType.GetProperty(propertyName);
if(pit !=null)
{
pit.SetValue(obj2,pi.GetValue(obj1,null),null);
}
}
}
return obj2;
}
實際上可以只傳兩個Type進來也可以的.
但是這個有個問題,就是當兩個實體的同名屬性類型不匹配時,會拋意外.我這個只是個例子,沒有try出來.
基本原理就是這樣子.呵呵.我的代碼風格一般,估計看壞大家的眼睛了.
我自己做了個類似Nhibernate的數據綁定(暫時支持單表),完善ing.呵呵有空再切磋咯
如果有什麼問題,歡迎大家指正
From:http://tw.wingwit.com/Article/program/net/201311/11457.html