从 ASP.NET 5 中的 config.json 检索部分

2023-12-13

假设我有一个config.json像这样:

{
  "CustomSection": {
    "A": 1,
    "B": 2
  }
}

我知道我可以使用IConfiguration对象获取特定设置,即configuration.Get("CustomSection:A"),但是我可以获取整个层次结构(任何类型 - 即使是原始字符串也可以)?当我尝试时configuration.Get("CustomSection"),我得到一个null结果,所以我认为默认情况下不支持这一点。

我的用例是一次获取整个配置字典,而不必获取每个单独的设置 - 某些属性在编译时可能未知。


我已经解决了类似的问题,我想将整个 IConfigurationRoot 或 IConfigurationSection 绑定到字典。这是一个扩展类:

public class ConfigurationExtensions
{
    public static Dictionary<string, string> ToDictionary(this IConfiguration config, bool stripSectionPath = true)
    {
        var data = new Dictionary<string, string>();
        var section = stripSectionPath ? config as IConfigurationSection : null;
        ConvertToDictionary(config, data, section);
        return data;
    }

    static void ConvertToDictionary(IConfiguration config, Dictionary<string, string> data = null, IConfigurationSection top = null)
    {
        if (data == null) data = new Dictionary<string, string>();
        var children = config.GetChildren();
        foreach (var child in children)
        {
            if (child.Value == null)
            {
                ConvertToDictionary(config.GetSection(child.Key), data);
                continue;
            }

            var key = top != null ? child.Path.Substring(top.Path.Length + 1) : child.Path;
            data[key] = child.Value;
        }
    }
}

并使用扩展:

IConfigurationRoot config;
var data = config.ToDictionary();
var data = config.GetSection("CustomSection").ToDictionary();

有一个可选参数 (stripSectionPath) 可以保留完整的节键路径或剥离节路径,留下相对路径。

var data = config.GetSection("CustomSection").ToDictionary(false);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 ASP.NET 5 中的 config.json 检索部分 的相关文章

  • C# 异步任务比同步慢

    你知道为什么同步斐波那契方法比异步 等待更快并且比异步任务更快吗 我在每个项目方法上都使用了异步 所以主要是这是一个非常糟糕的方法 Code static int FibonacciSync int number if number 0 r
  • Qt/c++ 随机字符串生成[重复]

    这个问题在这里已经有答案了 我正在创建一个应用程序 需要生成多个随机字符串 几乎就像一个由一定长度的 ASCII 字符组成的唯一 ID 这些字符混合有大写 小写 数字字符 有没有 Qt 库可以实现这一点 如果没有 在纯 C 中生成多个随机字
  • 我可以将 char 或 DateTime 设置为 null 吗?

    我可以将 null 设置为char数据类型 并且DateTime在 C 中 多谢你们 这是不可能的 它是一个值类型 使用 char myChar null DateTime myDate null 这相当于 Nullable
  • C++ 指针和对象实例化

    这有效 MyObject o o new MyObject 而这并不 MyObject o new MyObject Why 关键词new 返回一个指针 http msdn microsoft com en us library kewsb
  • 预编译头和 Visual Studio

    有没有办法设置 Visual Studio 解决方案参数 以便它只创建预编译头而不构建整个解决方案 具体来说 它是一个巨大的 C 解决方案 本身有许多项目 谢谢 仅选择 pch 创建者源文件 通常是 stdafx cpp 然后编译该文件 C
  • 在 .NET Core 中从 HttpResponseMessage 转换为 IActionResult

    我正在将之前在 NET Framework 中编写的一些代码移植到 NET Core 我有这样的事情 HttpResponseMessage result await client SendAync request if result St
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • FluentAssertions ShouldNotThrow 无法识别异步方法/Func

    我正在尝试检查异步方法是否抛出具体异常 为此 我使用 MSTEST 和 FluentAssertions 2 0 1 我已经检查过这个关于 Codeplex 的讨论 http fluentassertions codeplex com wo
  • asp.net core http 如果没有内容类型标头,则删除 `FromBody` 忽略

    我在 http 中使用 bodyDELETE要求 我知道目前删除主体是非标准的 但是允许的 使用时出现问题HttpClient它不允许删除请求的正文 我知道我可以使用SendAsync 但我宁愿让我的 API 更加灵活 我希望这个机构是可选
  • 冒号在c中起什么作用?

    我在课堂上得到了这个例子 但我不确定它的作用 我知道冒号添加了一个位字段 但我仍然不确定这个问题 a b gt 0 3 1 运算符称为条件运算符 If b值为 gt 0 价值3被分配给a否则值1被分配给a 以 Kernighan Ritch
  • 如何禁用基于 ValidationRule 类的按钮?

    如何禁用基于 ValidationRule 类的 WPF 按钮 下面的代码可以很好地突出显示 TextBox
  • 使用 cmake 将两种解决方案合二为一

    我有两个单独的 Visual Studio 2013 解决方案 我想将它们迁移到一个解决方案中 因为第一个解决方案 使用 Qt 充当第二个解决方案的 GUI 最后 我希望有一个结构如下的单一解决方案 Solution All Build P
  • 在 ASP.NET 中创建自定义文化

    我想在 App GlobalResources 文件夹中创建一个名为 shopping en sg resx 的新加坡英语 en sg 资源文件 我在编译过程中遇到错误 错误 1 命名空间 资源 已经包含了一个定义 购物 c WINDOWS
  • ASP.NET Core ViewData、BindProperty 还是 TempData?

    在 ASP NET Core 视图和 Razor 页面中 我们可以使用 public class LoginModel BindProperty public bool DisplayCaptcha get set OR ViewData
  • 如何释放字符串未使用的容量

    我正在程序中处理很多字符串 这些字符串数据在读入我的程序后的整个生命周期内都不会改变 但由于 C 字符串保留了容量 因此浪费了大量肯定不会被使用的空间 我尝试释放这些空间 但没有成功 以下是我尝试过的简单代码 string temp 123
  • 'iter' 的名称查找已更改为新的 ISO 'for' 范围

    我正在尝试编译下面的两个文件 但从编译器收到错误消息 gcc 4 3 3 Linux 错误位于带有以下符号的行 LINE WITH ERROR 我做错了什么 我该怎么改变 路易斯 g c b h b cpp b cpp In functio
  • Unity - 在生成时获取随机颜色

    我有一个小问题 我想在我的场景中生成四边形 它们都应该有红色或绿色作为材质 但 Random Range 函数只能是 int 我该如何解决它 void SpawningSquadsRnd rndColor 0 Color red rndCo
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d
  • 强制函数调用的顺序?

    假设我有一个抽象基类 并且我想要一个必须由派生类实现的纯虚方法 但我想确保派生方法以特定顺序调用函数 我可以做什么来强制执行它 I E base class virtual void doABC 0 virtual void A 0 vir
  • 如何通过API退出Win32应用程序?

    我有一个使用 Win32 API 编写的 C Win32 应用程序 我希望强制它在其中一个函数中退出 有没有类似的东西Exit or Destroy or Abort 类似的东西会终止它吗 哎呀呀呀呀呀呀 不要做任何这些事情 exit 和

随机推荐

  • 确定-取消对话框:处理“Enter”键按下

    我正在建造一个Dialog在Winforms中 当您创建它时 它有两个 确定 和 取消 按钮 这就是我想要的 在此对话框中我还有一个TextBox and a Sub VB NET 中的编码 处理其KeyPress事件 我需要按下 Ente
  • 裸星号作为方法定义中的参数:def f(*) [重复]

    这个问题在这里已经有答案了 我知道这意味着什么 def f args end 但这是什么意思以及为什么要使用它 它也可以与命名参数一起出现吗 def f end def f 具有相同的效果def f args 只不过它没有命名通配参数数组
  • Flexdashboard 侧边栏选择器输入溢出与滚动条

    在我之前的问题中shinyWidgets pickerInput 宽度问题溢出侧边栏我能够解决侧边栏中的 pickerInput 框如果值太宽会在侧边栏中被截断的问题 但是通过使用overflow visible 为了解决这个问题 当输入框
  • 如何唯一标识 ContactsContract.Contacts 表上的联系人

    我有一个应用程序可以获取ContactsContract Contacts LOOKUP KEY设备上的联系人并将其保存在应用程序数据库中 看完之后this页面我想我可以使用LOOKUP KEY唯一标识联系人 即使在编辑联系人时 例如编辑联
  • 奇怪的浮点除法结果

    我在一个grails项目中发生了这个奇怪的除法错误 但我认为grails与它无关 我认为是一个groovy或java问题 如果在常规控制台中我运行这个 float money 1 30 float r 0 01 println money
  • 绑定祖先不工作 WPF

    我有一个 TreeView 它被修改为在文本前面显示图像 所以我修改后的TreeViewItem叫做ImagedTreeViewItem 此 ImagedTreeViewItem 有一个属性 其中包含要显示的图像控件的图像 ImagedTr
  • WebDriver 测试未在 IE11 上运行

    当我运行 WebDriver 测试时 它们根本不工作 到目前为止我所做的 1 我已更新我的注册表项以包含 FEATURE BFCACHE 2 所有区域的保护模式设置均相同 3 增强保护模式被禁用 4 我还尝试在我的 PATH 中设置 IED
  • 推荐用于 JavaScript 编码的 Vim 插件? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我是 JS 和 Vim 的
  • 当位置设置为固定时,导航栏会缩小

    我目前遇到一个问题 当我将导航栏和横幅的位置设置为固定时 它们会缩小 我有很多事情 例如更改 z index 将其顶部位置设置为 0 添加自动边距等 但这些都不起作用 我希望有人能指出我的错误 这是我的html代码 html body ma
  • 有没有办法对VBS中存储的密码进行加密

    我有一个在工作中使用的 VBS 脚本 用于在连接到 Cisco 路由器和交换机时自动执行任务 包括自动执行登录过程 人们对于将密码存储在纯文本 VBS 文件中有些紧张 这并非没有道理 因此我为他们提供了每次提示输入密码或将其存储在脚本中的选
  • Canvas.toDataURL() 未捕获类型错误:未定义不是函数

    我正在使用一个名为 html2canvas 的插件将页面上的一些 html 转换为 canvas 元素 然后我想将该画布保存为图像 不幸的是我一直遇到标题中的错误 我尝试过使用不同的变量名 不同的 html 等 但不断遇到相同的错误 这是我
  • 复制 local = false 文件未找到异常问题

    嗨 我知道这个已被询问但并没有得到答复 当我想使用安装在 C Program files x86 Dummu API dll 上的 dll 时遇到问题 当我运行我的应用程序时 它抛出异常 无法加载文件或程序集 Dummy API Versi
  • 硒点击表td内的锚标记

    我的 html 代码如下所示 div class fd food search all fd loading style display block ul class fd breadcrumbs li a href class bread
  • 如何“加入”一个数组,将第一个要加入的字符添加到结果字符串的开头?

    我正在使用 Ruby on Rails 3 并且正在尝试join一个数组 特点 我阅读了 Ruby 文档关于那个 我的数组是 name1 name2 If I do name1 name2 join 结果是 name1 name2 我希望结
  • 类型别名的目的

    我想今天我终于明白什么是 typealias 了 我没有 让我们看一个例子 typealias Graph String String let futurama Graph you bender hermes scruffy bender
  • 从 iframe 访问父页面中的变量

    我有一个带有 iframe 的页面 其中包含 html 页面 我想从 iframe 中访问父页面中的 Javascript 变量 主页中变量的名称是observer 我已经尝试过这个 parent observer aadasds 但我收到
  • Distinct() 如何在对象列表中查找唯一元素

    有一个非常简单的类 public class LinkInformation public LinkInformation string link string text string group this Link link this T
  • 3D 三角形光栅化为体素网格

    序幕 这是将 3D 三角形光栅化为体素网格的问答 我被要求解决与以下相关的不同问题材料侵蚀 去除在制造过程模拟期间 这个问题背后的主要思想是如何移植基于扫描线的 2D 三角形光栅化 例如this转化为 3D 体素 所以问题是如何高效地光栅化
  • bash中删除长度小于2的单词

    我在 CentOS 5 5 上使用 bash 我有一个用空格分隔的字符串 并且该字符串只包含字母和数字 并且这个字符串可能有多余的空格 例如之间有超过1个空格 words and string exmple This is a lovey
  • 从 ASP.NET 5 中的 config.json 检索部分

    假设我有一个config json像这样 CustomSection A 1 B 2 我知道我可以使用IConfiguration对象获取特定设置 即configuration Get CustomSection A 但是我可以获取整个层次