Как определить переменную среды List, чтобы я мог прочитать ее на С#C#

Место общения программистов C#
Anonymous
Как определить переменную среды List, чтобы я мог прочитать ее на С#

Сообщение Anonymous »

У меня есть файл appsettings.json с переменной, которая представляет собой список строк: ["foo", "bar"].

Я пытаюсь перезаписать эту переменную с переменной окружения. Когда я это делаю, я все равно получаю значение из appsettings, когда получаю переменную в виде списка. Если я получу его как строку, я получу значение переменной среды.
Мой текущий код выглядит следующим образом:

Код: Выделить всё

appsettings.json
файл:

Код: Выделить всё

{
"MyVariable": ["test"],
}

Код: Выделить всё

Program.cs
файл:

Код: Выделить всё

var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables()
.Build();
Если я запускаю следующий код без добавления каких-либо переменных среды, он работает.

Код: Выделить всё

var result = config.GetSection("MyVariable").Get(); // returns a list with one element "test"
Если я добавлю следующую переменную среды и запущу еще раз, я все равно получу тот же результат: список с одним элементом «test».

Код: Выделить всё

MyVariable=["foo", "bar"]
Странно: если я запускаю config.GetSection("MyVariable").Get(), он возвращает эту строку: MyVariable=[ \"foo\", \"bar\"].
Как определить MyVariable как список, чтобы я мог получить его с помощью: config .GetSection("MyVariable").Get()

Подробнее здесь: https://stackoverflow.com/questions/790 ... in-c-sharp

Вернуться в «C#»