C # configSections "Разделы должны появляться только один раз для каждого файла конфигурации." - PullRequest
2 голосов
/ 06 октября 2011

Я хочу создать «Список» из 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 ]

1 голос
/ 06 октября 2011

Я думаю, вы ищете класс 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;
      }
   }
1 голос
/ 06 октября 2011

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

...