using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Reflection; namespace WMS.Common { /// /// 实体类与datatable的转换 /// public class MelCtData { private static MelCtData melctData; private static object _lock = new object(); #region 通过Singleton模式返回当前实例 /// /// 通过Singleton模式返回当前实例 /// public static MelCtData Instance { get { if (melctData == null) { lock (_lock) { if (melctData == null) { melctData = new MelCtData(); } } } return melctData; } } #endregion /// /// 返回datatable相对应的model类 /// /// /// /// public T FillModel(DataTable table) { T modelClass = default(T);//关于default为T类型的modelClass赋默认值 modelClass = Activator.CreateInstance(); foreach (DataRow row in table.Rows) { foreach (DataColumn column in table.Columns) { PropertyInfo pi = modelClass.GetType().GetProperty(column.ColumnName); if (pi != null) { if (pi.Name.ToLower() == column.ColumnName.ToLower()) { if (row[column.ColumnName] != DBNull.Value) pi.SetValue(modelClass, row[column.ColumnName.ToLower()].ToString(), null); else pi.SetValue(modelClass, null, null); } } } } return modelClass; } } }