是否有任何标准方法可以从 .NET 4.6.1 中的 appSettings.config 文件加载数组

Posted

技术标签:

【中文标题】是否有任何标准方法可以从 .NET 4.6.1 中的 appSettings.config 文件加载数组【英文标题】:Is there any standard way to load array from appSettings.config file in .NET 4.6.1 【发布时间】:2021-08-25 10:31:26 【问题描述】:

我的appSettings.config 文件中有这样的设置

<add key="logFilesLocations" value="[firstfile,secondfile]"/>

是否有任何标准方法可以直接将这些值作为数组读取?

我知道我可以在读取值并拆分字符串以获取数组后使用字符串,但这很难看。

我也试过了

public static List<string> LogFilesLocations => (ConfigurationManager.AppSettings.GetValues("logFilesLocations") ?? Array.Empty<string>()).ToList();

但这实际上并没有返回一个数组。

【问题讨论】:

据我所知没有内置方法,除了之后解析字符串。或者使用具有更多选项的完全不同的格式,例如 XML 或 JSON。 【参考方案1】:

从这个答案中得到解决方案

https://***.com/a/46057375/804517

所以我将appSettings.config 替换为appSettings.json 并将我的设置设置为这样

"logFilesLocations": [
        "C:\\Users\\Desktop\\Logs",
        "C:\\Users\\Desktop\\Logs2"
    ]

并开始读取这样的值

public static List<string> LogFilesLocations => _config.GetSection("logFilesLocations").Get<List<string>>();

按照答案中的建议,我必须添加 Microsoft.Extensions.ConfigurationMicrosoft.Extensions.Configuration.BinderMicrosoft.Extensions.Configuration.Json

【讨论】:

以上是关于是否有任何标准方法可以从 .NET 4.6.1 中的 appSettings.config 文件加载数组的主要内容,如果未能解决你的问题,请参考以下文章

是否有记录在案的方法可以从非标准位置使用自动工具?

我可以从 4.6.1 Web 应用程序调用 .NET 4.7.1 DLL 吗?

任何使用 WMI IPHelper 的标准 C#.NET 方式?

从 ASP.Net 扫描图像

是否有标准方法将 .NET 字符串编码为 JavaScript 字符串以在 MS Ajax 中使用?

使用 .Net 标准库中的 UWP 方法