appsettings.json 和 Class 使用 ConfigurationManager.AppSettings 的库
appsettings.json and Class libraries that use ConfigurationManager.AppSettings
我正在努力将现有的 ASP.NET MVC 应用程序迁移到 ASP.NET Core。该解决方案有几个 class 库(提供数据访问、服务等)。许多 class 库使用静态 ConfigurationManager.AppSettings["..."]
方式从 web.config 文件获取配置。
虽然 ASP.NET 核心应用程序没有 web.config 文件,但似乎 ConfigurationManager
无法读取 appsettings.json。
我非常喜欢 ASP.NET Core 中的新配置系统,并且正在 Web 应用程序中使用它。
但是有没有一种 "simple" 方法可以迁移这些 class 库而不必重写它们以使用新的配置系统?静态 ConfigurationManager.AppSettings["..."]
调用的任何基本替代将显示为 appsettings.json? (注意:我们最终会重写它们,但我们宁愿一次只做一件)
免责声明:我没有尝试使用 class 库,但这在 LinqPad 中有效:
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 应用设置集合可用的所有值。
如果您使用的是 .NET Standard 2.0,则可以添加对 System.Configuration.ConfigurationManager
NuGet 包的引用以访问 appSettings。
您可以将 app.Config
文件(不是 web.Config
)添加到 ASP.NET 核心项目以存储 appSettings。这将被复制到输出文件夹并在项目构建期间重命名为 AppName.dll.config
。
我正在努力将现有的 ASP.NET MVC 应用程序迁移到 ASP.NET Core。该解决方案有几个 class 库(提供数据访问、服务等)。许多 class 库使用静态 ConfigurationManager.AppSettings["..."]
方式从 web.config 文件获取配置。
虽然 ASP.NET 核心应用程序没有 web.config 文件,但似乎 ConfigurationManager
无法读取 appsettings.json。
我非常喜欢 ASP.NET Core 中的新配置系统,并且正在 Web 应用程序中使用它。
但是有没有一种 "simple" 方法可以迁移这些 class 库而不必重写它们以使用新的配置系统?静态 ConfigurationManager.AppSettings["..."]
调用的任何基本替代将显示为 appsettings.json? (注意:我们最终会重写它们,但我们宁愿一次只做一件)
免责声明:我没有尝试使用 class 库,但这在 LinqPad 中有效:
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 应用设置集合可用的所有值。
如果您使用的是 .NET Standard 2.0,则可以添加对 System.Configuration.ConfigurationManager
NuGet 包的引用以访问 appSettings。
您可以将 app.Config
文件(不是 web.Config
)添加到 ASP.NET 核心项目以存储 appSettings。这将被复制到输出文件夹并在项目构建期间重命名为 AppName.dll.config
。