【发布时间】:2018-12-26 04:43:35
【问题描述】:
我第一次用 appsettings.json 代替 app.config 所以请原谅我找不到的可能愚蠢的问题在我的研究中一个令人满意的解决方案。
我有一个以 .Net Core 2.0 Web API 为前端的解决方案,其中依赖项目将我的解决方案分解为多个类库层。我需要从底层持久层类库中获取存储在顶层 appsettings.json(在我的 Web API 下)中的连接字符串。
我找到this article 一步一步地解释它。终于让它工作了。
注意:我用 connectionString 测试了这个功能,但我还需要其他变量,我打算稍后再做。
我的问题是,一旦我实现了所需的构造函数:
public Data(IOptions<ConnectionStrings> connectionStrings)
{
ConnectionStrings = connectionStrings;
}
我必须手动将IOptions 对象一直传递到堆栈中。
Data date = new Data(ConnectionStrings);
有没有类似于ConfigurationManager 给你的不需要我一直传递IOptions 对象的解决方案?
我肯定做错了什么,不是吗?
【问题讨论】:
-
不,这就是想法 - 避免静态/单例等。它们使现场和测试变得糟糕。如果需要(或部分需要),您应该传递它们。还要阅读
IOptionSnapshot等,以了解为什么静力学不会(总是)起作用。话虽如此,没有什么可以阻止您“缓存”在static变量中检索到的值并从那时起使用它(但至少不推荐)。 -
@Christian.K,将此作为答案发布,我会这样标记。
标签: c# .net-core app-config appsettings