从集合IEnumerable中排除特定的类

时间:2019-05-09 08:40:58

标签: dependency-injection unity-container

在Unity IoC中,如果接口具有多种实现,那么如何指定特定类不应该包含在集合中?

例如,

class Audi : ICar {}
class BMW : ICar {}
class Mercedes : ICar {}

public HomeController(IEnumerable<ICar> cars)

public ValuesController(IEnumerable<ICar> cars)

在HomeController初始化期间,我不希望Mercedes对象出现在集合中。

请提供一种适合一般情况的解决方案。

1 个答案:

答案 0 :(得分:0)

如果要将AudiBMWMercedes区别开来,则应在接口继承中添加另一个级别。在此示例中,我们将其称为ICoolCar(应以区分其他品牌与Mercedes的方式来命名)。

interface ICar {}
interface ICoolCar : ICar {}

class Audi : ICoolCar {}
class BMW : ICoolCar {}
class Mercedes : ICar {}

public HomeController(IEnumerable<ICoolCar> cars)