我有一个标准的.NET 4.5.2库,我已经使用多年了。它依赖于ConfigurationManager.AppSettings,这意味着我必须确保我的app或web.config文件的appSettings部分中有一组特定的设置。无法传递这些值。您必须将它们放在appSettings部分。
我在.NET Core中开始一个新项目但是以Net452为目标,这样我就可以利用一些库(到目前为止工作正常)。
我遇到了这个最新库的问题,因为我无法弄清楚如何正确设置设置,以便ConfigurationManager.AppSettings能够找到它们。
将它们放入appSettings.json似乎不起作用。将它们放在web.config中似乎也不起作用。
这甚至可能吗?
谢谢!
答案 0 :(得分:6)
是的,它可能是你想要的,但你应该手动(我不知道是否有一个简单的方法)。
假设您在appsettings.json
中有一些设置,如下所示:
{
"AppSettings" : {
"Setting1": "Setting1 Value"
}
}
在Startup.cs
构造函数集ConfigurationManager.AppSettings
中,其值为:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
// copy appsetting data into ConfigurationManager.AppSettings
var appSettings = Configuration.GetSection("AppSettings").GetChildren();
foreach (var setting in appSettings.AsEnumerable())
{
ConfigurationManager.AppSettings[setting.Key] = setting.Value;
}
}
在类库中获取价值:
var conStr = ConfigurationManager.AppSettings["Setting1"].ToString();