我有一个共享的 .NET Standard 库,最初由 .NET 4.8 MVC 4 项目引用。这个共享库中有很多代码使用了 ConfigurationManager
,例如:
var sze = ConfigurationManager.AppSettings["MaxAttachmentSize"];
MaxAttachmentSize
(和其他)的值存储在 web.config
中。
现在我有一个正在构建的 .NET 6 项目,它将使用同一个共享项目,我需要找到一种方法使这些配置应用程序设置在新的 .NET Core 应用程序中起作用。执行此操作的最佳方法是什么?
我想我的问题是:
- 有没有办法让
ConfigurationManager
从 .NET Core 的appsettings.json
文件中读取,就像从web.config
中读取一样ASP.NET MVC 4 项目? - 如果没有,是否有另一个我可以使用的配置读取器,它可以完成双重任务,能够像我需要的那样为两个项目工作?
不过,目前对 ConfigurationManger
的所有调用都是静态的,因此,如果 .NET Core 选项也可以是静态的,那将非常有帮助。如果没有,则需要更多工作来移动 ASP.NET MVC 4 项目以使这些设置依赖项注入(inject)可用。
最佳答案
现在你可以更轻松地搞定
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
string sze = Configuration.GetSection("AppSettings:MaxAttachmentSize").Value;
添加到 appsettings.json 之后
"AppSettings": {
"MaxAttachmentSize": "size1",
"MinAttachmentSize": "size2"
}
关于.NET Core 中的 C# ConfigurationManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71104843/