Я пытаюсь использовать 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" }
.
Какие-либо идеи о том, как решить это?
Попробуйте
<add key="mykey" value="A,B,C"/>
И
string[] mykey = ConfigurationManager.AppSettings["mykey"].Split(',');
Конфигурационный файл обрабатывает каждую строку как присвоение, поэтому вы видите только последнюю строку. Когда он читает конфигурацию, он присваивает вашему ключу значение «A», затем «B», затем «C», и, поскольку «C» является последним значением, оно остается неизменным.
как предлагает @Kevin, лучший способ сделать это, вероятно, - это значение, содержимое которого представляет собой CSV, который вы можете проанализировать.
То, что вы хотите сделать, невозможно. Вы должны либо назвать каждый ключ по-разному, либо сделать что-то вроде value = "A, B, C" и выделить разные значения в коде string values = value.split (',')
.
Он всегда выбирает значение ключа, который был определен последним (в вашем примере C).