首页 > 解决方案 > 检索组件/应用程序上所有注入服务的列表

问题描述

我正在寻找一种方法来获取组件或应用程序级别的所有注入/可注入服务的列表。

目前 Injector 只提供一个需要参数的 get 方法,我正在寻找类似 getAll 方法的东西。

我需要对这些服务进行一些自省,这就是我需要这个功能的原因。

您能否告诉我目前是否有任何方法可以实现这一目标?

更新

这是我的需要。

我有一个抽象类A,其中包含一个方法 isEveryThingOk (只是一个例子)。

这个类在 30 多个服务中被继承。

现在假设我有 5,10 或 20 个应用程序正在使用其中的几个服务,但从来没有使用所有这些服务。

在每个应用程序中,我想检查扩展我的类A的所有加载服务是否一切正常。

目前我需要在我的每个应用程序中创建一个包含所有已使用服务的数组,并通过这个数组来运行我的测试。

手动管理这些阵列非常麻烦且容易出错。服务可能通过模块间接加载。

因此,在我的主要应用程序组件中,我想遍历所有加载的服务,测试它们是否与 A 类匹配,如果匹配,则对它们中的每一个运行我的测试。

这样我肯定不会错过任何一个,也不会经历空载服务。这也让我节省了大量的时间和精力,并防止手动维护这些列表的错误。

当然,我不想创建一个包含所有服务的组件,因为这会将它们包含在每个应用程序的捆绑包中,即使它们不被使用。

标签: angulardependency-injectionintrospection

解决方案


推荐阅读