上面只是介紹了反射的應用而已,下面介紹反射在數據庫操作層的應用。好晚了,想睡覺了,直接看代碼吧.
Code
using System;
using System.Collections;
using System.Text;
using System.Data;
using ObjectLoader;
namespace DataTableAOP
{
public class ObjectList
{
/// <summary>
/// 將DataTable轉換成ArrayList
/// </summary>
/// <param name="dataTable"></param>
/// <param name="name">類名</param>
/// <returns></returns>
public static ArrayList GetObjectList(DataTable dataTable, string name)
{
ShowObject show = new ShowObject();
DataRowCollection rows = dataTable.Rows;
ArrayList list = new ArrayList();
foreach (DataRow row in rows)
{
//使用反射生成新的實例
object obj = show.LoadObject("UserName");
foreach (DataColumn column in dataTable.Columns)
{
//根據字段名設置屬性值
show.SetPropertyValue(obj, column.ColumnName, row[column.ColumnName]);
}
list.Add(obj);
}
return list;
}
}
}
各位如果有興趣的話,做個類似於hibernate的簡化版是完全沒問題的。
本文配套源碼