標籤:
public class People //類名 { private static string name; //欄位 private string sex;//欄位 public string Sex //屬性 { get { return sex; } set { sex = value; } } public static string Name //屬性 { get { return People.name; } set { People.name = value; } } }
class Program { static void Main(string[] args) { DataTable dt = new DataTable("dt"); GetTableByClass<People>(ref dt); Console.ReadKey(); } /// <summary> /// 反射類屬性添加到DataTable /// </summary> /// <typeparam name="T">泛型類</typeparam> public static void GetTableByClass<T>(ref DataTable dt) { Type t = typeof(T); MemberInfo[] members = t.GetMembers(); List<string> ls = new List<string>(); foreach (MemberInfo member in members) { if (member.MemberType == MemberTypes.Property) { ls.Add(member.Name); } } AddArryFieldToTable(ref dt, ls); } /// <summary> /// 添加數組欄位到DataTable /// </summary> public static void AddArryFieldToTable(ref DataTable dt, List<string> fieldNames) { foreach (string fieldName in fieldNames) { AddFieldToTable(ref dt, fieldName); } } /// <summary> /// 添加欄位到DataTable /// </summary> public static void AddFieldToTable(ref DataTable dt, string fieldName) { DataColumn c = new DataColumn(); c.DataType = System.Type.GetType("System.String"); c.ColumnName = fieldName; dt.Columns.Add(c); } }
反射類屬性產生DataTable