我有一个标准的.NET 4.5.2库,我已经使用多年了.它依赖于ConfigurationManager.AppSettings,这意味着我必须确保我的app或web.config文件的appSettings部分中有一组特定的设置.无法传递这些值.您必须将它们放在appSettings部分中.
我正在.NET Core中开始一个新项目,但目标是Net452,这样我就可以利用一些库(到目前为止工作正常).
我遇到了这个最新库的问题,因为我无法弄清楚如何正确设置设置,以便ConfigurationManager.AppSettings可以找到它们.
将它们放在appSettings.json中似乎不起作用.将它们放在web.config中似乎也不起作用.
这甚至可能吗?
谢谢!
是的,它可能是你想要的,但你应该手动(我不知道是否有一个简单的方法).
假设您有appsettings.json
以下设置:
{
"AppSettings" : {
"Setting1": "Setting1 Value"
}
}
Run Code Online (Sandbox Code Playgroud)
在具有值的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;
}
}
Run Code Online (Sandbox Code Playgroud)
并在类库中获得价值:
var conStr = ConfigurationManager.AppSettings["Setting1"].ToString();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1579 次 |
最近记录: |