实体转泛类型备忘:
/// <summary>
/// 根据业务类型,生成相应实体
/// </summary>
/// <typeparam name="T">具体的申请实例</typeparam>
/// <param name="sqbh">申请编号</param>
/// <param name="wlx">业务类型</param>
/// <returns></returns>
public T GetSingleSq<T>(string sqbh, WkfLx wlx)
{
Type type = typeof(T);
object oObj=null;
switch (wlx)
{
case WkflowHelper.WkfLx.Car:
oObj= new UseCarSqTabService().GetByID(sqbh);
break;
case WkflowHelper.WkfLx.Jiedai:
oObj = new AdmitSqTabService().GetSingleModel(sqbh);
break;
case WkflowHelper.WkfLx.Meeting:
oObj = new MeetingWkTabService().GetSingleModel(sqbh);
break;
case WkflowHelper.WkfLx.Qianbao:
oObj= new QingShiQianBaoService().GetSingleModel(sqbh);
break;
case WkflowHelper.WkfLx.Seal:
oObj = new SealSqTabService().GetByID(sqbh);
break;
case WkflowHelper.WkfLx.WorkContact:
oObj = new WorkContactService().GetSingleModel(sqbh);
break;
}
if (oObj == null) return default(T);
object nobj = type.Assembly.CreateInstance(type.FullName);
string name = type.Name;
PropertyInfo[] pro=type.GetProperties();
foreach (PropertyInfo pp in pro)
{
var v= pp.GetValue(oObj, null);
pp.SetValue(nobj, v, null);
}
return (T)nobj;
}