首页 > 解决方案 > 建议将设置值数组保存在 .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 等的设置值数组?

标签: c#.net-coreappsettings

解决方案


将其绑定到模型

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)。

所以,数组只是值的数据类型


推荐阅读