我有一个标准的.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)