Вопрос по asp.net, .net – Store String Array В appSettings?

24

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

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

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

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

Я рекомендую материал Newtonsoft JSON, если вы идете по этому пути ... user166390

Ваш Ответ

4   ответа
10

Прежде всего создайте ключ 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();
22

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

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

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

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

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

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

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

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

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

8

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

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

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

var myArray = ConfigurationManager.AppSettings["myStringArray"].Split(',');
Вы имеете в виду[...] около"MyStringArray", не(...) или я что-то упустил? WAF
Должен бытьvar myArray = ConfigurationManager.AppSettings["MyStringArray"].Split(','); dev

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