Действительно ли ему нужен собственный раздел конфигурации?Лично я редко нахожу необходимость выходить за рамки простых настроек в свойствах проекта.Вот как я это сделал в проекте, где я хотел использовать список источников, которые были разрешены и запрещены.Объект, который я хотел сохранить в конфигурации (в моем случае, user.config, но принцип тот же для app.config), является простым объектом c # (он реализует интерфейс, не относящийся к этому обсуждению, и все)
Итак, чтобы было проще, я создал класс коллекции для своего объекта.Это упрощает настройку части.Вот класс полностью:
// This is mainly declared to ease use as a User Setting
public class SpellSourceCollection : List<SpellSource>
{
public SpellSourceCollection() : base() { }
public SpellSourceCollection(IEnumerable<SpellSource> ListToCopy)
: this()
{
this.AddRange(ListToCopy);
}
}
Помните, что в SpellSource нет ничего особенного.Теперь в настройках проекта я могу назначить тип в качестве объекта моей коллекции.
Возможно, вам придется «просмотреть» правильный пользовательский объект.Однако, как только это будет сделано, чтение из app.config (или user.config) станет простым делом.Вот как выглядит файл конфигурации (слегка сокращенно).
<setting name="Sources" serializeAs="Xml">
<value>
<ArrayOfSpellSource xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SpellSource>
<Source>PFRPG Advanced Player's Guide</Source>
<Allowed>true</Allowed>
<BackgroundColor>White</BackgroundColor>
</SpellSource>
<SpellSource>
<Source>PFRPG Core</Source>
<Allowed>true</Allowed>
<BackgroundColor>White</BackgroundColor>
</SpellSource>
<SpellSource>
<Source>Rival Guide</Source>
<Allowed>false</Allowed>
<BackgroundColor>White</BackgroundColor>
</SpellSource>
<SpellSource>
<Source>Ultimate Combat</Source>
<Allowed>true</Allowed>
<BackgroundColor>White</BackgroundColor>
</SpellSource>
<SpellSource>
<Source>Ultimate Magic</Source>
<Allowed>true</Allowed>
<BackgroundColor>Cyan</BackgroundColor>
</SpellSource>
</ArrayOfSpellSource>
</value>
</setting>
Получение свойства - просто вопрос
SpellSourceCollection settingsSources = Properties.Settings.Default.Sources;
// do stuff or even later in your project, you can save this user setting
Properties.Settings.Default.Sources = settingsSources;
Properties.Settings.Default.Save();
Вы можете применить это к своему собственному проекту аналогичным образом.,Единственные легкие хитрости - это объявление объекта коллекции и создание настройки в свойствах проекта.