是否有任何标准方法可以从 .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.Configuration
、Microsoft.Extensions.Configuration.Binder
和 Microsoft.Extensions.Configuration.Json
包
【讨论】:
以上是关于是否有任何标准方法可以从 .NET 4.6.1 中的 appSettings.config 文件加载数组的主要内容,如果未能解决你的问题,请参考以下文章
我可以从 4.6.1 Web 应用程序调用 .NET 4.7.1 DLL 吗?
任何使用 WMI IPHelper 的标准 C#.NET 方式?