如何使用值数组读取 appsettings.json

2024-01-22

我有以下 appSettings.json 文件:

  "SundrySettings": {

    "CookieName": "Cookie",

    "AccessGroup": "Software Development",

    "Terminals" :  {
      "Raucherplatz" : "tablet1.local",
      "Service" :      "tablet2.local",  
      "Technik" :      "tablet3.local",  
      "Technik" :      "tablet4.local",  
      "Container" :    "tablet5.local"
    }
  }
}

我想加载到以下结构中:


    public class Terminal
    {
        public string Name;
        public string Description;
    }

    public class SundryOptions
    {
        public string CookieName { get; set; } = "dummy";
        public string HRAccessGroup { get; set; } = "dummy";
        public List<Terminal> Terminals;
    }

我将尝试使用以下命令加载:

ServiceProvider sp = services.BuildServiceProvider();
SundryOptions sundryOptions = sp.GetService<IOptions<SundryOptions>>().Value;

我遇到的问题是使用属性初始化器永远不会正确设置终端列表。我确实需要一个列表(而不是字典),因为实体可能是双重的,即我的示例中的 Technik。

我假设我的类中有一些错误 - >我很乐意提供任何指示。


执行如下操作:

var cookieName = Configuration.GetSection("SundrySettings:CookieName").Value;
var accessGroup = Configuration.GetSection("SundrySettings:AccessGroup").Value;
var terminals = Configuration.GetSection("SundrySettings:Terminals").GetChildren();

List<Terminal>  terminalList = new List<Terminal>();

foreach (var keyValuePair in terminals)
{
     Terminal termial = new Terminal()
     {
          Name = keyValuePair.Key,
          Description = keyValuePair.Value
     };

     terminalList.Add(termial);
}

SundryOptions sundryOption = new SundryOptions()
{
            CookieName = cookieName,
            HRAccessGroup = accessGroup,
            Terminals = terminalList
};

我已经检查了您提供的确切配置,它运行得很好。

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

如何使用值数组读取 appsettings.json 的相关文章

  • Unity3D StartCoroutine 调用一个函数,该函数什么时候返回?

    我知道Unity3D StartCoroutine调用了一个与StartCoroutine在同一线程上运行的函数 但是被调用的函数什么时候返回到原始调用者 我在互联网上查找了一个很好的 Unity3D Coroutine 示例 但找不到完整
  • SL4 AutoCompleteBox 重复筛选结果问题

    我在 AutoCompleteBox 过滤方面遇到问题 它似乎记住了之前的过滤器 例如 我输入 A 它会返回 1 项 我删除 A 并输入 Z 这应该返回 1 项 问题是它返回 A 过滤器加上 Z 的结果 我删除 Z 并输入 S 这会带回 2
  • 必须打开存储才能执行此操作 - System.IO.Packaging.Package

    我正在使用 System IO Packaing Package 类来压缩文件 我的应用程序的多个实例可以同时运行 并读取和保存文件 当处理小文件时 一切似乎都很好 但是当涉及大文件时 如果应用程序的两个实例同时保存 我会收到一个异常 消息
  • WebClient读取错误页面的内容

    我有一个加载页面内容的应用程序 我使用 WebClient 类 即使服务器返回 404 500 等错误 我也需要检索内容 我需要这样的东西 WebClient wc new WebClient string pageContent try
  • 使用不带参数的 Split() 时,默认分隔符是什么?

    所以我看了看String Split 今天 C 中的方法 我意识到你也可以向它传递零参数 这是我从未考虑过的 使用时默认的分隔符是什么Split 没有任何参数 如果没有值 则为空白 来源自here https msdn microsoft
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • 通过引用传递时取消引用指针

    当通过引用传递给函数时取消引用指针时会发生什么 这是一个简单的例子 int returnSame int example return example int main int inum 3 int pinum inum std cout
  • 在通过网络发送之前压缩位图

    我正在尝试通过网络发送位图屏幕截图 因此我需要在发送之前对其进行压缩 有一个库或方法可以做到这一点吗 当您将图像保存到流时 您have选择一种格式 几乎所有位图格式 bmp gif jpg png 都使用一种或多种压缩形式 因此 只需选择适
  • 用 C# 制作 Vista 风格的应用程序

    我正在运行 Windows Vista 并且希望外观看起来像常规 Vista 程序 有没有关于如何构建 Vista 风格应用程序的真正好的教程 文章 我还想学习如何使用本机代码并将其转换为 C 如this http bartdesmet n
  • 使用 openssl 检查服务器安全协议

    我有一个框架应用程序 它根据使用方式连接到不同的服务器 对于 https 连接 使用 openssl 我的问题是 我需要知道我连接的服务器是否使用 SSL 还是 TLS 以便我可以创建正确的 SSL 上下文 目前 如果我使用错误的上下文尝试
  • 导出到 CSV 时 Gridview 出现空行

    这个问题是由进一步讨论引发的这个问题 https stackoverflow com questions 6674555 export gridview data into csv file 6674589 noredirect 1 com
  • Microsoft.Graph - 如何从具有不同用户名的共享邮箱发送?

    我目前正在将使用 SMTP 的服务代码移植到 Office 365 通过 SMTP 我可以使用 发件人 字段在来自共享收件箱的邮件上设置不同的用户名 同时保留共享电子邮箱地址 这似乎无法通过 Office 365 运行 其工艺流程为 客户填
  • 线程安全的 C++ 堆栈

    我是 C 新手 正在编写一个多线程应用程序 不同的编写者将对象推入堆栈 读者将它们从堆栈中拉出 或至少将指针推入对象 C 中是否有任何内置结构可以在不添加锁定代码等的情况下处理此问题 如果没有 那么 Boost 库呢 EDIT 你好 感谢您
  • 不要声明只读可变引用类型 - 为什么不呢?

    我一直在阅读这个问题 https stackoverflow com questions 2274412 immutable readonly reference types fxcop violation do not declare r
  • 为什么WCF中不允许方法重载?

    假设这是一个ServiceContract ServiceContract public interface MyService OperationContract int Sum int x int y OperationContract
  • realloc():重新分配为 char * 上的 strcat 腾出空间时下一个大小无效 [重复]

    这个问题在这里已经有答案了 我在以下代码中收到无效内存错误 printf s n FINE 5 printf s LENGTH IS d n FINE 6 strlen buffer char realloc buffer strlen b
  • 将 bignum 类型结构转换为人类可读字符串的有效方法是什么?

    我有一点问题 为了增长我的 C 知识 我决定尝试实现一个基本的 bigint 库 bigint 结构的核心将是一个 32 位整数数组 选择它们是因为它们适合寄存器 这将允许我在数字之间进行操作 这些操作将在 64 位整数中溢出 这也将适合寄
  • 如何将 CSV 文件读入 .NET 数据表

    如何将 CSV 文件加载到System Data DataTable 根据CSV文件创建数据表 常规 ADO net 功能是否允许这样做 我一直在使用OleDb提供者 但是 如果您正在读取具有数值的行 但希望将它们视为文本 则会出现问题 但
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • 在何处将 CFLAG(例如 -std=gnu99)添加到 (Eclipse CDT) 自动工具项目中

    我有一个简单的 Autotools C 项目 不是 C 其框架是由 Eclipse CDT Juno 为我创建的 CFLAG 通过检查 似乎是 g O2 我希望所有生成的 make 文件也具有 std gnu99附加到 CFLAG 因为我使

随机推荐

  • 按修改日期而不是发布日期对 Jekyll 帖子进行排序?

    对于经常更新帖子的人来说 有必要根据帖子从新到旧进行排序最后修改日期而不是 Jekyll 默认按发布日期排序 似乎没有简单的方法可以实现这一点 我已经阅读并测试了几乎所有的方法 这是有效的 部分符合预期 用过这个宝石https github
  • 在linux中安装jdk 1.7时出错[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当我使用以下命令在 Oracle Linux 中安装 jdk 1 7 时 rpm ivh jdk 7u9 linux i586 rpm 但是我收到以下
  • 使用正则表达式捕获两个单词之间的文本

    我正在尝试使用 CSharp 中的正则表达式获取两个关键字之间的文本 虽然我已经找到了一个具有相同标题的主题 但该主题是关于查找方括号之间的文本 这相当容易 因为您可以使用
  • 为什么 SQLAlchemy count() 比原始查询慢得多?

    我正在使用 SQLAlchemy 和 MySQL 数据库 我想计算表中的行数 大约 300k SQL炼金术count http docs sqlalchemy org ru latest orm query html sqlalchemy
  • 警告:在此函数中使用未初始化的“”[-Wuninitialized]

    以下程序编译时没有警告 O0 include
  • GitHub Action:如何从表达式求值中获取值并将其分配给环境变量

    环境表达式通常直接赋值 如下例所示 name set up env var env TAG v1 2 3 run echo TAG 但是如何从 shell 脚本评估中获取值呢 例如 在我的终端中 我可以通过以下方式获取当前标签git des
  • CMake rpm 在 /etc/init.d 中安装文件

    我想安装一个文件 etc init d 目录 我已经写了代码 INSTALL FILES CMAKE SOURCE DIR app script appd DESTINATION etc init d appd 但是当我使用 cmake 运
  • Facebook SDK 4.5 iOS 9

    我遇到了新 FBSDK 的问题 每当我尝试调用登录方法 logInWithReadPermissions 时 我都会收到以下错误消息 错误 canOpenUrl url fbauth2 失败错误 null 我的配置 plist 文件遵循 i
  • 使用GPU加速BigInteger计算

    我几乎完成了处理一些非常大的整数 大约 2 的 100 000 000 次方 的算法 由于该算法不是内存密集型的 因此需要在内存充足的 16 核服务器上编写几个小时的高度并行代码 我使用 NET 4 中的 BigInteger 类 算法的细
  • ASP.Net Core 中的动态路由

    我需要提供一个路由机制 其中路由是在运行时从用户帐户创建生成的 例如http mysite username home 我认为这可以通过路由来完成 但我不确定从哪里开始使用 ASP Net Core 我在网上看到了一些 MVC 5 的示例
  • zxing 集成到 monodroid 应用程序中

    我正在尝试将 ZXing 的条形码扫描仪集成到 MonoDroid 应用程序中 我看到普通的 Android java 应用程序有IntentIntegration java 和 IntentResult java http code go
  • 如何“解锁詹金斯”?

    我正在Windows上安装Jenkins 2 安装后 打开一个页面 URL是 http localhost 8080 login from 2F http localhost 8080 login from 2F content of th
  • Selenium 在 Windows 中运行无头 Firefox 浏览器

    是否可以将 Selenium 配置为使用 Firefox 驱动程序并在 Windows 中无头运行浏览器 我知道其他驱动程序在 Windows 或 Linux 下也能正常工作 但在上面提到的特定情况下则不然 任何可供阅读的参考信息 实现它的
  • Scrapy 通过表单身份验证绕过警报消息

    Scrapy是否可以抓取警报消息 链接例如 http 域名 admin http domainhere admin 一旦加载到实际的浏览器中 就会出现一条带有表单的警报消息 以填写用户名和密码 或者有没有办法检查警报消息中的表单以了解要填写
  • 如何从出租车中获取界、门、纲、目、科、属和种的分类学特定 ID?

    我有一个出租车列表 如下所示 1204725 2162 1300163 420247 我希望从上面的出租车中按顺序获取带有分类 ID 的文件 kingdom id phylum id class id order id family id
  • 如何获取 Django 中保存模型实例的数据库?

    我有一个使用多个数据库的 Django 应用程序 给定一个模型实例 如何获取存储它的数据库 如果有 我需要这个来保存另一个对象the same数据库作为第一个 def add ducks to hunt hunter db the hunt
  • 不使用openjdk安装maven2

    ubuntu默认自带openjdk 我从sun安装了jdk 并删除了openjdk 但是使用openjdk我必须删除maven2 不安装openjdk如何重新安装 java version java version 1 7 0 03 Jav
  • 无缝 Facebook 登录

    我正在开发一个应用程序 允许与 Facebook 共享更新 该应用程序正在运行 f9 但我真正想要的是从我的 UI 登录页面提供登录凭据 请指导从Facebook的角度是否可以 适用于 Android 的官方 Facebook SDK 支持
  • 根据列中的重复值对 Excel 中的值进行分组

    假设 我有数据 Column1 Column2 1 1000 1 2000 1 3000 2 2000 2 1000 3 5000 3 4000 我想显示它像 Column1 Column2 Column3 1 1000 3000 2 20
  • 如何使用值数组读取 appsettings.json

    我有以下 appSettings json 文件 SundrySettings CookieName Cookie AccessGroup Software Development Terminals Raucherplatz tablet