.NET Core 中的 C# ConfigurationManager

标签 c# .net-core .net-6.0

我有一个共享的 .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/

相关文章:

c# - 我如何考虑 IQueryable<className> 的默认数据

c# - Razorpages 上的 ASP.NET Core 声明 null 处理

f# - 使用 F# 将通配 rune 件包含在 .NET Core 项目中

asp.net-core - IIS 只能支持 Blazor 服务器客户端的三个实例?

azure - 当我将核心从 3.1 更新到 6 时,在 .net6 中找不到 TableClientConfiguration

C# 序列化不会向 xml 文件中的属性添加值

C#奎因问题

c# - 捕获外部过程中的错误

c# - 找不到任何已安装的.NET Core SDK

amazon-web-services - .Net Core - 支持 DI 的 AWS Lambda 项目