Как иметь вложенные конфигурации в файле конфигурации JSON и читать его, используя бит? - PullRequest
0 голосов
/ 08 сентября 2018

До сих пор я видел пример кода, в котором некоторая конфигурация вставлена ​​в файл с именем environment.json, например:

[
    {
        "Name": "Default",

    "AppInfo": {
          "Name": "blahblah",
          "Version": "1"
    },
    "Configs": [
      {
        "Key": "someconfiguration",
        "Value": "some value"
      },
      {
        "Key": "another configuration ",
        "Value": "blah blah"
      },
    ]
   }
]

и затем при необходимости данные могут быть прочитаны из файла конфигурации следующим образом:

var value = DefaultAppEnvironmentsProvider.Current
            .GetActiveAppEnvironment()
            .GetConfig<string>("SomeConfiguration");

Вопрос:

что делать, если я хочу получить configuration, значение которого является вложенным json list или json object. Я хочу что-то вроде этого:

"key": "Address",
"value": {
    "street": "some street name",
    "postal code": "blah blah",
    ...
}

как я могу прочитать такие конфигурации, используя бит ?

спасибо за ваше время заранее.

1 Ответ

0 голосов
/ 01 декабря 2018

Прежде всего, создайте класс, который определяет ваш конфигурационный контракт:

public class MailServerConfig
{
    public Uri ServerUrl { get; set; }

    public string AnotherConfig { get; set; }
}

Затем добавьте в ваш файл environment.json следующее:

,
      {
        "Key": "MailServerConfig",
        "Value": {
          "$type": "SampleApp.Configurations.MailServerConfig, SampleApp",
          "ServerUrl": "https://google.com/",
          "AnotherConfig": "!"
        }
      }

В ваших контроллерах (или где угодновы хотите прочитать ваши конфиги), введите AppEnv

public AppEnvironment AppEnv { get; set; }

Затем прочитайте ваш конфиг, как показано ниже:

MailServerConfig mailServerConfig = AppEnv.GetConfig<MailServerConfig>("MailServerConfig");

Обратите внимание, что в environment.json, $ type является обязательным, и он долженбыть первой строкой вашего вложенного объекта json.

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