【问题标题】:Singleton injection with parameter带参数的单例注入
【发布时间】:2020-09-20 18:13:18
【问题描述】:

我确实想使用 get_itinjectable 包。他们都很棒,但我面临一个问题。也许我的想法是错误的。

我的应用程序有两个单例,我想为不同的应用程序风格使用不同的基本 URL。所以我用 baseUrl 值向单例构造函数添加了一个参数。

现在的问题是,injectable 只有 @factoryParam 作为注解。名字就说明了问题。它不适合单身人士。

解决该问题的最佳做法是什么?我是否应该摆脱构造函数注入并像

一样在单例中注入 baseUrl
var url = get_it.get<Config>();

或者这不是最好的主意?

【问题讨论】:

  • 如果您找到了解决方案,请告诉我,我遇到了同样的问题 :(

标签: flutter dart injectable


【解决方案1】:

可以通过几种方式实现,您可以为不同的环境注册不同的字符串,例如

@Environment("dev")
@Named("url") // in case if you injecting other strings
String get devUrl...

@Environment("stage")
@Named("url") // in case if you injecting other strings
String get stageUrl...

[更新示例]

@Environment("dev")
@injectable
class ExampleOne{
final String _url;

ExampleOne(@Named("url") this._url)
}

@Environment("stage")
@injectable
class ExampleTwo{
final String _url;

ExampleTwo(@Named("url") this._url);
}

或只有一个类:

@injectable
class Example{
final String _url;
Example(@Named("url") this._url);
}

【讨论】:

  • 我如何使用 get_it 来检索“url”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多