如何在di.dart中创建单身人士实例?单身人士在di.dart
好像如果我这样做:
module = new Module()
..bind(GameRepository)
..bind(MessageFactory)
..bind(Broadcaster);
我GameRepository
被多次实例化,如果当我做
injector.get(GameRepository)
我试图做
..bind(GameRepository, toValue: new GameRepository())
这似乎工作,但它很容易,因为GameRepository
没有参数,但不应该有办法告诉di框架将其绑定为单例,而无需我实例化它(并保持其构造函数调用?)
编辑: @Günter,我确实想要一个Singleton,但是在我的情况下,我想用我的redstone.dart资源中的GameRepository
和外部的。所以,我绑定GameRepository
,然后做到这一点:
// To use it outside of the resource
injector = new ModuleInjector([modules.getProductionModule()]);
// To use it in redstone
app.addModule(module);
现在我可以看到,雷石东持有从一个上GameRepository
不同的参考,我得到当我做injector.get(GameRepository)
我不知道,如果问题变得过于具体:P
我不知道我理解你的解释。你是否创建了多个'ModuleInjector'实例? –
只有一个,但我认为redstone.dart创建了自己的'ModuleInjector'。 – Pacane
您是否试图在红石注册您的模块,并在任何地方使用红石注入器(https://github.com/redstone-dart/redstone/blob/472ac5144a3dbf9cc14ab32745107d38fdb14fa4/lib/server.dart#L348)? –