首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ConfigurationManager.AppSettings的appsettings.json和类库

使用ConfigurationManager.AppSettings的appsettings.json和类库
EN

Stack Overflow用户
提问于 2019-01-29 02:09:48
回答 2查看 2.2K关注 0票数 2

我正在致力于将现有的ASP.NET MVC应用迁移到ASP.NET核心。该解决方案有几个类库(提供数据访问、服务等)。其中许多类库使用从web.config文件获取配置的静态ConfigurationManager.AppSettings["..."]方式。

然而,在ASP.NET核心应用程序中,没有web.config文件,而且ConfigurationManager似乎无法读取appsettings.json。

我真的很喜欢ASP.NET核心中的新配置系统,并在web应用程序中使用它。

但是,有没有一种“简单”的方法来迁移这些类库,而不必重写它们来使用新的配置系统呢?对于读取appsettings.json的静态ConfigurationManager.AppSettings["..."]调用,有什么基本的替代方法吗?(注意:我们最终会重写它们,但我们宁愿一次只写一段)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-29 02:38:10

如果你使用的是.NET标准2.0,你可以添加一个对System.Configuration.ConfigurationManager NuGet包的引用来访问appSettings。

您可以将app.Config文件(而不是web.Config)添加到ASP.NET核心项目中以存储appSettings。它将被复制到输出文件夹中,并在项目构建期间重命名为AppName.dll.config

票数 1
EN

Stack Overflow用户

发布于 2019-01-29 02:33:05

免责声明:我没有尝试使用类库,但这在LinqPad中是有效的:

代码语言:javascript
复制
void Main()
{
    var config = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
        .AddInMemoryCollection(new Dictionary<string, string>
        {
            ["test"] = "test",
            ["test2:test"] = "test2"
        })
        .Build();

    foreach (var pair in config.AsEnumerable())
    {
        // Skips the (test2 = null) pair
        if (pair.Value != null)
        {
            ConfigurationManager.AppSettings.Set(pair.Key, pair.Value);
        }
    }

    ConfigurationManager.AppSettings["test"].Dump();
    ConfigurationManager.AppSettings["test2:test"].Dump();
}

您可以在您的初始化代码中放入类似这样的内容。它设置可用于System.Configuration应用程序设置集合的所有值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54407914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档