作者:woshishl | 来源:互联网 | 2023-02-03 11:08
我想用di。扑朔迷离,我将这个https://pub.dartlang.org/packages/di包添加到我的项目中,我开始阅读这篇https://webdev.dartlang.org/angular/guide/dependency-injection文章,但我不知道不太了解。
这样就可以了:在服务类(例如MyServices)上使用@Injectable()批注,但是如何注入其他类呢?例如,我想类似:
class MyClass{
//some variable
var asd = MyService.asd; //need inject var.
//maybe use injector.get(MyService).asd;
//but how add injector? (I don't add across constructor)
MyService.oneMethod;//need inject method
}
main(){
var injector = new ModuleInjector([new Module()
..bind(MyService)
]);
}
关键是,我不想使用构造函数。我想直接使用喷油器。这是可能的扑/飞镖?
1> 小智..:
Google最近开放了一个Flutter兼容的依赖项注入框架。可以在这里找到:https://github.com/google/inject.dart
该项目提供静态编译时依赖项注入,而不是依靠反射在运行时注入依赖项。如果您熟悉Dagger,它似乎非常相似。
值得注意的是-这不是Google或Dart官方团队的项目。在撰写本文时,几乎没有文档,并且目前被认为是开发人员预览。
2> Günter Zöchb..:
Angulars DI包不能独立于Angular使用。
该双包是相当过时,而且要看dart:mirrors
它是不是可以在颤振
似乎有一个新的DI软件包正在开发中,它应该取代Angulars内置的DI,并且也应该在Flutter或服务器端应用程序中可以独立使用,但是尚无预发行版或源代码。
更新
宣布的DI软件包被无限期延迟。