【发布时间】:2019-01-31 06:08:59
【问题描述】:
我在我的项目中使用依赖注入,并且想知道是否只注册所有 30 多个继承某个接口的类使用 for each 会更容易,这样它就可以动态工作。
我在 Google、SO、RJ、YHA 和更多问答网站上查找过,但没有任何帮助。它只是说明您是否已经拥有它们的类的集合,而没有人向您展示如何仅从一个界面进行操作。
例如,我需要获取 Class1、2 和 3 以及任何其他继承 IClass 的类的列表。
class Class1 : IClass {}
class Class2 : IClass {}
class Class3 : IClass {}
如果我稍后声明这些,它们也会被发现。
class Class4 : IClass {}
class Class5 : IClass {}
class Class6 : IClass {}
【问题讨论】:
-
那么,你打算用它吗?你想将
Class1和所有其他人绑定到它自己吗?你要向 DI 容器请求Class1吗? -
@Phiter 我不会说它是完全重复的,但如果 OP 决定使用反射来实现它,这是一篇有用的文章。
-
我要使用它,是的,@Phiter 我不想使用 LINQ。我还需要该类作为 TImplementation
-
I don't want to use LINQ; ...为什么不呢? -
@fskdjwe:这不是题外话,因为您将其添加为限制并且可以在答案中使用。不过,如果您知道自己的原因,那也没关系。但是,请记住;很多
I don't want to use ... because it's ...实际上很少是正确的,这就是人们钓鱼的原因。