小编Dan*_*ser的帖子

Get_It Flutter 多个抽象类注册

我们使用包 get_it:^7.1.3 进行依赖注入。我想用相同的抽象类注册一些类(就像它们是接口一样)并得到它们,如下所示:

List<AbstractLass> allClassesWhichImplementAbstractClass=di.sl.get<AbstractLass>();

因此我想通过以下方式注册它:

  sl.registerLazySingleton<AbstractLass>(() =>
  AbstractLassImpl1());
  sl.registerLazySingleton<AbstractLass>(() =>
  AbstractLassImpl2());
Run Code Online (Sandbox Code Playgroud)

但当我这样做时,我会得到一个例外:

ArgumentError (Invalid argument(s): Object/factory with  type AbstractLass is already registered inside GetIt. )
Run Code Online (Sandbox Code Playgroud)

还有另一种解决方案,我通过以下方式仅注册实现:

  sl.registerLazySingleton<AbstractLassImpl1>(() =>
  AbstractLassImpl1());
  sl.registerLazySingleton<AbstractLassImpl2>(() =>
  AbstractLassImpl2());
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我不会通过使用它们的抽象类来访问它们(如果可能的话)

有人能帮我吗?

dependency-injection flutter

6
推荐指数
1
解决办法
2441
查看次数

标签 统计

dependency-injection ×1

flutter ×1