通过表名反射查找获得BaseBusiness - BaseBusinessGetByTableNameAndAssembly
2017-03-17 11:52:47 访问(1469) 赞(0) 踩(0)
/// <summary>
/// SlowX.Core.Business.BaseBusiness对应的Type
/// </summary>
protected Type TypeBaseBusiness = typeof(SlowX.Core.Business.BaseBusiness);
/// <summary>
/// 是否是BaseBusiness - IsSlowXCoreBaseBusiness
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
protected bool IsSlowXCoreBaseBusiness(Type t)
{
if (t == null)
return false;
if (t == TypeBaseBusiness)
return true;
return IsSlowXCoreBaseBusiness(t.BaseType);
}
/// <summary>
/// 通过Assembly和Type,获得BaseBusiness对应的instance - BaseBusinessGetByType
/// </summary>
/// <param name="ass"></param>
/// <param name="typeValue"></param>
/// <returns></returns>
protected SlowX.Core.Business.BaseBusiness
BaseBusinessGetByType
(
Assembly ass,
Type typeValue
)
{
FieldInfo info
= typeValue.GetField("instance", BindingFlags.Static | BindingFlags.Public);
if (info == null)
{
return null;
}
return info.GetValue(null) as BaseBusiness;
}
/// <summary>
/// 通过表名反射查找获得BaseBusiness - BaseBusinessGetByTableNameAndAssembly
/// </summary>
/// <param name="strName"></param>
/// <returns></returns>
public SlowX.Core.Business.BaseBusiness
BaseBusinessGetByTableNameAndAssembly
(
string strName
)
{
if (strName == null)
return null;
strName = strName.Trim().ToUpper();
if (strName.Length == 0)
return null;
Assembly ass = typeof(eKingEkVehicleLibHelper).Assembly;
Type[] tA = ass.GetTypes();
foreach (Type t in tA)
{
if (!IsSlowXCoreBaseBusiness(t))
continue;
if (t.FullName.EndsWith("." + strName))
{
return BaseBusinessGetByType(ass, t);
}
}
return null;
}
标签:
通过表名反射查找获得BaseBusiness - BaseBusinessGetByTableNameAndAssembly 


上一条:
下一条:
相关评论
发表评论