在Unity IoC中,如果接口具有多种实现,那么如何指定特定类不应该包含在集合中?
例如,
class Audi : ICar {}
class BMW : ICar {}
class Mercedes : ICar {}
public HomeController(IEnumerable<ICar> cars)
public ValuesController(IEnumerable<ICar> cars)
在HomeController初始化期间,我不希望Mercedes对象出现在集合中。
请提供一种适合一般情况的解决方案。
答案 0 :(得分:0)
如果要将Audi
和BMW
与Mercedes
区别开来,则应在接口继承中添加另一个级别。在此示例中,我们将其称为ICoolCar
(应以区分其他品牌与Mercedes
的方式来命名)。
interface ICar {}
interface ICoolCar : ICar {}
class Audi : ICoolCar {}
class BMW : ICoolCar {}
class Mercedes : ICar {}
public HomeController(IEnumerable<ICoolCar> cars)