Я хотел бы сохранить коллекцию пользовательских объектов в файле user.config и хотел бы добавить и удалить элементы из коллекции программно, а затем сохранить измененный список обратно в файл конфигурации.
Мои элементы имеют следующую простую форму:
class UserInfo
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
В моем app.config я уже создал пользовательский раздел:
<configuration>
<configSections>
<section name="userInfo" type="UserInfoConfigurationHandler, MyProgram"/>
</configSections>
<userInfo>
<User firstName="John" lastName="Doe" email="[email protected]" />
<User firstName="Jane" lastName="Doe" email="[email protected]" />
</userInfo>
</configuration>
Я также могу прочитать настройки, выполнив IConfigurationSectionHandler
:
class UserInfoConfigurationHandler : IConfigurationSectionHandler
{
public UserInfoConfigurationHandler() { }
public object Create(object parent, object configContext, System.Xml.XmlNode section)
{
List<UserInfo> items = new List<UserInfo>();
System.Xml.XmlNodeList processesNodes = section.SelectNodes("User");
foreach (XmlNode processNode in processesNodes)
{
UserInfo item = new UserInfo();
item.FirstName = processNode.Attributes["firstName"].InnerText;
item.LastName = processNode.Attributes["lastName"].InnerText;
item.Email = processNode.Attributes["email"].InnerText;
items.Add(item);
}
return items;
}
}
Я сделал все это после этой статьи . Однако, используя этот подход, я могу читать настройки из app.config в коллекцию List<UserInfo>
, но мне также нужно будет написать измененный список обратно,
Я искал документацию без успеха, и теперь я как бы застрял. Что мне не хватает?