Store String Array В appSettings?

Я хотел бы сохранить массив одномерных строк в качестве записи в моемappSettings, Я не могу просто разделить элементы с помощью, или же| потому что сами элементы могут содержать эти символы.

Я думал о сохранении массива какJSON затем десериализацию с помощьюJavaScriptSerializer.

Есть ли "право"? / лучший способ сделать это?

(МоиJSON идея чувствует себя немного нахально)

 user16639002 мая 2012 г., 20:13
Я рекомендую материал Newtonsoft JSON, если вы идете по этому пути ...

Ответы на вопрос(4)

Для строк это просто, просто добавьте следующее к своемуweb.config файл

<add key="myStringArray" value="fred,Jim,Alan" />

, а затем вы можете получить значение в массив следующим образом:

var myArray = ConfigurationManager.AppSettings["myStringArray"].Split(',');
 WAF27 мар. 2017 г., 15:43
Вы имеете в виду[...] около"MyStringArray", не(...) или я что-то упустил?
 dev04 мая 2017 г., 07:24
Должен бытьvar myArray = ConfigurationManager.AppSettings["MyStringArray"].Split(',');

фигурации / коллекцию. Вот пример:

<configSections>
    <section name="configSection" type="YourApp.ConfigSection, YourApp"/>
</configSections>

<configSection xmlns="urn:YourApp">
  <stringItems>
    <item value="String Value"/>
  </stringItems>
</configSection>

Вы также можете проверить это превосходно Надстройка Visual Studio, который позволяет графически создавать разделы конфигурации .NET и автоматически генерирует для них весь необходимый код и определение схемы (XSD).

Прежде всего создайте ключ appSettings с целочисленными значениями, разделенными запятыми в вашем app.config.

<add key="myIntArray" value="1,2,3,4" />

Затем разделите и преобразуйте значения в массив int с помощью LINQ

int[] myIntArray =  ConfigurationManager.AppSettings["myIntArray"].Split(',').Select(n => Convert.ToInt32(n)).ToArray();
Решение Вопроса

Вы можете использовать AppSettings сSystem.Collections.Specialized.StringCollection.

var myStringCollection = Properties.Settings.Default.MyCollection;
foreach (String value in myCollection)
{ 
    // do something
}

Каждое значение отделяется новой строкой.

Вот скриншот (немецкая IDE, но она может быть полезна в любом случае)

 Rango15 янв. 2015 г., 11:36
@ akdurmus: только если вы конвертируете их в int:int[] ints = new int[strings.Count]; for(int i = 0; i < strings.Count; i++) ints[i] = int.Parse(strings[i]);
 akd15 янв. 2015 г., 11:56
Кажется, я нашел лучший ответ и написал ниже. Спасибо @ Тим
 akd15 янв. 2015 г., 11:30
Можно ли это использовать для целых чисел?

Ваш ответ на вопрос