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;
}
}
}