Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从appsettings.json读取嵌套循环json值并分配给对象_C#_.net_.net Core - Fatal编程技术网

C# 如何从appsettings.json读取嵌套循环json值并分配给对象

C# 如何从appsettings.json读取嵌套循环json值并分配给对象,c#,.net,.net-core,C#,.net,.net Core,你应该看看地图 选项模式使用类提供对相关设置组的强类型访问。当配置设置按场景分为不同的类别时,应用程序遵循两个重要的软件工程原则: 接口隔离原则(ISP)或封装:场景 依赖于配置设置的(类)仅依赖于 他们使用的配置设置。关注点分离:设置 因为应用程序的不同部分不依赖于或耦合到一个 另一个 只想分享我如何在我的应用程序上执行此操作(假设appsettings.json是您的默认配置文件): 用法: public class ConfigHelper : IConfigHelper { pr

你应该看看地图

选项模式使用类提供对相关设置组的强类型访问。当配置设置按场景分为不同的类别时,应用程序遵循两个重要的软件工程原则:

接口隔离原则(ISP)或封装:场景 依赖于配置设置的(类)仅依赖于 他们使用的配置设置。关注点分离:设置 因为应用程序的不同部分不依赖于或耦合到一个 另一个


只想分享我如何在我的应用程序上执行此操作(假设appsettings.json是您的默认配置文件):

用法:

public class ConfigHelper : IConfigHelper
{
    private IConfiguration Configuration { get; }

    public ConfigHelper(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public string GetAppSettings(string key)
    {
        return Configuration[key];
    }
}
或者这种方法:

创建一个类来表示您的配置:

...
ConfigHelper.GetAppSettings("SalesOrderFilters:Skip");
...

我想这个问题可能需要修改以避免结束,添加一些你正在尝试做的事情和到目前为止不起作用的内容。谢谢你的回答。但是如何从json中读取“columnFilters”值呢?您可以在这里尝试这种方法,或者另一种可能的方法(我主要是这样做的)是编辑我的答案:)
...
ConfigHelper.GetAppSettings("SalesOrderFilters:Skip");
...
public class SalesOrderFilters
{
    public int Skip { get; set; }
    public int Take { get; set; }
    public List<Filters> Filters { get; set; }
    ...
}

public class Filter
{
   public List<ColumnFilter> ColumnFilters { get; set; }
   ...
}
public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddSingleton(typeof(SalesOrderFilters), Configuration.GetSection("SalesOrderFilters").Get<SalesOrderFilters>());
    ...
}
public class MyController
{
    private SalesOrderFilters _settings;

    public MyController(SalesOrderFilters settings)
    {
        _settings = settings;
    }
}