Как я могу прочитать значение в квадратных скобках appsettings. json - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть appsettings. json с кодом:

"Serilog": {
    "WriteTo": [
      {
        "Name": "RollingFile",
        "Args": {
          "pathFormat": "/home/www-data/aissubject/storage/logs/log-{Date}.txt"
        }
      }
    ]
  }

Как я могу прочитать значение ключа "pathFormat"?

1 Ответ

0 голосов
/ 13 апреля 2020

То, что вы имеете в виду, это массив JSON. Как вы получаете доступ к , что зависит от того, что вы делаете, но я предполагаю, что, поскольку вы спрашиваете об этом, вы пытаетесь получить его прямо из IConfiguration, а не использовать Шаблон параметров (как вы, вероятно, должны быть).

IConfiguration в основном словарь. Чтобы создать ключи этого словаря из чего-то вроде JSON, JSON «сплющивается» с использованием определенных соглашений. Каждый уровень будет разделен двоеточием. Массивы будут сглажены путем добавления разделенного двоеточиями компонента, содержащего индекс. Другими словами, чтобы получить значение pathFormat в этом конкретном примере, вам понадобится:

Configuration["Serilog:WriteTo:0:Args:pathFormat"]

Где часть 0 означает, что вы получаете первый элемент в массиве. Опять же, гораздо лучше и более уместно использовать шаблон options для сопоставления значений конфигурации с реальным объектом, что позволит вам на самом деле обращаться к нему как к массиву, а не к магической строке c, подобной этой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...