我有一个类层次结构,如下所示:
public class Country : MainObj
public class MainObj : BaseEntity
我有如下业务逻辑类:
public class CountryBLL<TEntity> : CountryDLL<TEntity>,IBaseBLL<TEntity> where TEntity : Country
public class MainObjBLL<TEntity> : MainObjDLL<TEntity>, IBaseBLL<TEntity> where TEntity : MainObj
现在我要实现的是一个函数,我决定应该为此获得哪个类和 bll 我为函数的返回类型添加了 IBaseBLL 接口
我的功能如下:
public static IBaseBLL<T> GetProperBllFromObjName<T>(string entityName)
{
IBaseBLL<T> baseBLL = null;
switch (entityName)
{
case "Country":
CountryBLL<Country> aa = new CountryBLL<Country>();
baseBLL = (IBaseBLL<T>) aa; //error line
break;
}
return baseBLL;
}
当我这样调用函数时:
IBaseBLL<BaseEntity> mainBll = GetProperBllFromObjName("Country");
但我无法在我添加注释“错误行”的行中抛出异常
那么在这种情况下我该怎么办。我唯一想要的是编写一个函数来决定我应该使用哪个 bll。(我不想改变 bll declerations)。