.NET Core 中的 C# ConfigurationManager

Phi*_*hil 8 c# .net-core .net-6.0

我有一个共享的 .NET 标准库,最初由 .NET 4.8 MVC 4 项目引用。这个共享库中有很多代码使用ConfigurationManager,例如:

var sze = ConfigurationManager.AppSettings["MaxAttachmentSize"];
Run Code Online (Sandbox Code Playgroud)

(和其他)的这个值MaxAttachmentSize被存储在web.config.

现在我正在构建一个 .NET 6 项目,它将使用同一个共享项目,并且我需要找到一种方法使这些配置应用程序设置在新的 .NET Core 应用程序中工作。最好的方法是什么?

我想我的问题是:

  • 有没有办法像从ASP.NET MVC 4 项目中读取一样ConfigurationManager从 .NET Core 文件中读取数据?appsettings.jsonweb.config
  • 如果没有,我是否可以使用另一个配置读取器来代替它,它可以完成双重任务,能够像我需要的那样为两个项目工作?

不过,目前的最大问题是,ConfigurationManger现在的所有调用都是静态的,因此如果 .NET Core 选项也可以是静态的,那将非常有帮助。如果没有,则需要更多工作来移动 ASP.NET MVC 4 项目以使这些设置依赖项注入可用。

Ser*_*rge 9

现在您可以更轻松地获得它

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

string sze = Configuration.GetSection("AppSettings:MaxAttachmentSize").Value;
Run Code Online (Sandbox Code Playgroud)

添加到 appsettings.json 后

  "AppSettings": {
    "MaxAttachmentSize": "size1",
    "MinAttachmentSize": "size2"
  }
Run Code Online (Sandbox Code Playgroud)