我们正在使用 get_it:^7.1.3 包进行依赖注入。
我想要注册一些与同一个抽象类相关的类(就像它们是接口一样),并像下面这样获取它们:
List allClassesWhichImplementAbstractClass=di.sl.get();
因此,我希望以以下方式进行注册:
sl.registerLazySingleton<AbstractLass>(() =>
AbstractLassImpl1());
sl.registerLazySingleton<AbstractLass>(() =>
AbstractLassImpl2());
但是当我这样做时,我会得到一个异常:
ArgumentError (Invalid argument(s): Object/factory with type AbstractLass is already registered inside GetIt. )
还有一种解决方案,我只需按照以下方式注册实现:
sl.registerLazySingleton<AbstractLassImpl1>(() =>
AbstractLassImpl1());
sl.registerLazySingleton<AbstractLassImpl2>(() =>
AbstractLassImpl2());
这样做是可行的,但如果可能的话,我将无法通过使用它们的抽象类来访问两者。
有人能帮帮我吗?