2010-06-11 2 views
0

Я никогда не использовал Settings класс раньше, но я нашел некоторые статьи по CodeProject, которые я сейчас читаю (например, http://www.codeproject.com/KB/cs/PropertiesSettings.aspx), но до сих пор я не видел, как сохранить массив string для его получения после приложения запускается в следующий раз.Параметры приложения и конфигурации C#

Например, мое приложение имеет несколько экземпляров FileSystemWatcher, с каждым экземпляром подключены несколько других каталогов (например, один экземпляр FSW контролирует один каталог для изменения, а когда он происходит, он копирует некоторый файл в несколько других каталогов), поэтому я будет иметь один массив string с просмотренными путями, представляющими экземпляры FSW, и массив string для каждого из этих путей, представляющий собой каталоги, которые затронуты.

Мой вопрос: что следует использовать (Settings класс или что-то еще) и как его использовать для хранения конфигурации приложения, которое является переменным числом массивов string? Подчеркивание - это то, что я могу использовать очень скоро, поскольку у меня нет слишком много времени для создания пользовательского класса (но мне нужно будет, если я не смогу найти решение) или выкопать некоторые неясные хаки. Любая ссылка на учебник, фрагмент кода будет очень полезен.

Спасибо.

ответ

1

Почему бы не использовать конфигурационный файл вместо этого? У меня был набор FileSystemWatchers, как ваш, и просто добавил набор путей, используя custom config sections. Мысль, которая требует, чтобы вы прокатили класс для расширения классов конфигурации, но я думаю, что вы не можете победить этот подход.

Хотя, если вам нужен простой легкий взлом и вы не хотите беспокоиться о разделах пользовательских конфигураций/Элементах/Коллекциях. Просто используйте быстрый и легкий взлом AppSettings. XD

<appSettings> 
    <add key="ConnectionInfo0" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
    <add key="ConnectionInfo1" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
    <add key="ConnectionInfo2" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
</appSettings> 

Получение кода.

const string CONNECTIONSTRING=""; 
int i = 0; 
while(ConfigurationSettings.AppSettings["ConnectionInfo"] + i != null) 
{ 
    // do stuff with connection info here 
    // use 
    ConfigurationSettings.AppSettings["ConnectionInfo" + i]; 
    // to get data. 
    ++i; 
} 

Tad уродливый, я знаю. Пользовательская настройка работает лучше всего.

+0

Спасибо за ваш ответ Джонн. Дело в том, что мне также необходимо добавить данные программно, и поскольку у меня просто не так много времени, чтобы тратить на изучение того, как это сделать правильно (IMO они слишком усложняют), я буду использовать 'System.Xml.Serialization.XmlSerializer 'на данный момент. Это чище и гораздо проще в использовании/развертывании с пользовательским классом, который представляет собой настройки. Приветствия. – Maks

Смежные вопросы