【发布时间】:2018-04-27 21:18:30
【问题描述】:
我有一个 asp.net core 2 webapi 服务。我想阅读 appsettings.json 但我无法弄清楚。像往常一样,当我在互联网上搜索时,我得到了十几个完全不同的答案,这些答案基于框架的不同版本,最终似乎不起作用。
以 appsettings.json 为例:
"AppSettings": {
"Domain": "http://localhost"
}
首先我尝试了这个:
通过 nuget Microsoft.Extensions.Configuration 和 Microsoft.Extensions.Configuration.Json 添加
在我的 ConfigureServices 方法中我添加了:
services.AddSingleton<IConfiguration>(Configuration);
在我的控制器中,我注入了配置:
IConfiguration iconfig;
public ValuesController(IConfiguration iConfig)
{
iconfig = iConfig;
}
要检索它:
return "value: " + iconfig.GetValue<string>("AppSettings:Domain");
我可以看到控制器构造函数被调用并传入配置,但值始终为空。
我确实注意到 Startup 已经传入了 IConfiguration。这是实施方式的另一个变化,我需要做一些不同的事情吗?
[编辑] 我现在读过 https://joonasw.net/view/aspnet-core-2-configuration-changes
这表示一切都再次发生了变化并且是自动注入的,但是在遵循代码之后它实际上并没有说明您如何获得控制器中的数据。
【问题讨论】:
-
将
IConfigurationRoot注入您的控制器,然后像这样访问您的值:config["AppSettings:Domain"] -
您发布的代码对我来说很好用。我只需要修复 appsettings.json 因为您发布的不是有效的 json。
标签: asp.net-web-api asp.net-core