Несколько значений для единственного ключа конфигурации

Я пытаюсь использовать ConfigurationManager.AppSettings.GetValues() для получения нескольких значений конфигурации для единственного ключа но я всегда получаю массив только последнего значения. Мой appsettings.config похож

<add key="mykey" value="A"/>
<add key="mykey" value="B"/>
<add key="mykey" value="C"/>

и я пытаюсь получить доступ с

ConfigurationManager.AppSettings.GetValues("mykey");

но я только добираюсь { "C" }.

Какие-либо идеи о том, как решить это?

41
задан Daniel Schierbeck 12 May 2010 в 14:54
поделиться

3 ответа

Попробуйте

<add key="mykey" value="A,B,C"/>

И

string[] mykey = ConfigurationManager.AppSettings["mykey"].Split(',');
46
ответ дан 27 November 2019 в 00:31
поделиться

Конфигурационный файл обрабатывает каждую строку как присвоение, поэтому вы видите только последнюю строку. Когда он читает конфигурацию, он присваивает вашему ключу значение «A», затем «B», затем «C», и, поскольку «C» является последним значением, оно остается неизменным.

как предлагает @Kevin, лучший способ сделать это, вероятно, - это значение, содержимое которого представляет собой CSV, который вы можете проанализировать.

11
ответ дан 27 November 2019 в 00:31
поделиться

То, что вы хотите сделать, невозможно. Вы должны либо назвать каждый ключ по-разному, либо сделать что-то вроде value = "A, B, C" и выделить разные значения в коде string values ​​= value.split (',') .

Он всегда выбирает значение ключа, который был определен последним (в вашем примере C).

6
ответ дан 27 November 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: