c# - 建议将设置值数组保存在 .net 核心 Appsettings 文件中
问题描述
我正在构建一个控制台应用程序,我必须保存几个设置值,其中一些是一组值 我正在考虑的 Appsettings 示例部分如下所示
"FolderSettings":{
"source": "c:\\sourcefolder",
"target": "c:\\targetfolder"
},
"FolderJPG":[
{
"name":"foldername",
"width":1450,
"height":1450
}
],
"FolderPNG":[
{
"name":"foldername",
"width":300,
"height":300
},
{
"name":"foldername2",
"width":450,
"height":450
}
]
是否建议将设置值数组保存在 appsettings 文件 [在这种情况下为 FolderJPG 和 FolderPNG],或者是否有任何推荐的方法将这些设置保存在 .net 核心中?
另外,如何将设置值作为值数组获取?我知道读取一个简单的键值对的方式就像
_configuration.GetValue<string>("FolderSettings:source");
但是如何正确读取 FolderJPG、FolderPNG 等的设置值数组?
解决方案
将其绑定到模型
public class FolderOption
{
public string Name { get; set; }
public int Width{ get; set; }
public int Height{ get; set; }
}
然后
_configuration.GetSection("FolderJPG").Get<List<FolderOption>>();
appsettings.json可以包含您需要的任何限制配置 - 它应该是 JSON 。
JSON 对象以键/值对的形式编写。
键必须是字符串,值必须是有效的 JSON 数据类型(字符串、数字、对象、数组、布尔值或 null)。
所以,数组只是值的数据类型