C# configSections "Разделы должны появляться только один раз для каждого файла конфигурации."
Я хочу создать "Список" clientUsers
который содержит много clientUser
<configuration>
<configSections>
<sectionGroup name="clientUsers">
<section name="clientUser" type="System.Configuration.NameValueFileSectionHandler" />
</sectionGroup>
</configSections>
<clientUsers>
<!-- user number 1 -->
<clientUser>
<add key="id" value="1" />
<add key="userName" value="someuser" />
<add key="password" value="test" />
<add key="IPs" value="1,2,3" />
</clientUser>
<!-- user number 2 -->
<clientUser>
<add key="id" value="2" />
<add key="userName" value="avi2" />
<add key="password" value="test" />
<add key="IPs" value="1,2,3" />
</clientUser>
</clientUsers>
Почему я получаю эту ошибку:
Разделы должны появляться только один раз для каждого файла конфигурации. Смотрите раздел справки для исключений.
Как мне создать список clientUser
2 ответа
Решение
Я думаю, что уже есть подобные вопросы. Проверьте ответ на этот вопрос. Он сделал это с помощью обработчика пользовательских настроек.
Я думаю, что вы ищете класс ConfigurationElementCollection в System.Configuration MSDN Link http://msdn.microsoft.com/en-us/library/system.configuration.configurationelementcollection.aspx
Есть также учебник по codeproject
Небольшой фрагмент с сайта codeproject
public class ShiSettingCollection : ConfigurationElementCollection
{
public ShiSettingElements this[int index]
{
get
{
return base.BaseGet(index) as ShiSettingElements;
}
set
{
if (base.BaseGet(index) != null)
{
base.BaseRemoveAt(index);
}
this.BaseAdd(index, value);
}
}
protected override System.Configuration.ConfigurationElement CreateNewElement()
{
return new ShiSettingElements();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ShiSettingElements)element).Key;
}
}