Приложение C#.Конфигурация с массивом или списком, как данные



Как иметь массив или список подобной информации в приложении.конфиг? Я хочу, чтобы пользователь мог поставить как можно больше IP-адресов (или по мере необходимости). Моя программа просто возьмет все, что указано в приложении.конфиг. Как это сделать?



<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ip" value="x" />
<add key="ip" value="y" />
<add key="ip" value="z" />
</appSettings>
</configuration>



public string ip = ConfigurationManager.AppSettings["ip"];
796   3  

3 ответов:

Самый простой способ-это список, разделенный запятыми в вашем приложении.конфигурационный файл. Конечно, вы можете написать свой собственный раздел конфигурации, но какой смысл делать это, если это просто массив строк, держите его простым.

<configuration>
  <appSettings>
    <add key="ips" value="z,x,d,e" />
  </appSettings>
</configuration>

public string[] ipArray = ConfigurationManager.AppSettings["ips"].Split(',');

В конструкторе настроек можно задать тип параметра StringCollection, что позволяет создать список строк.

Скриншот

Вы можете позже получить доступ к отдельным значениям как Properties.Settings.Default.MyCollection[x].

В файле app.config это выглядит следующим образом:

<setting name="MyCollection" serializeAs="Xml">
<value>
    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <string>Value1</string>
        <string>Value2</string>
    </ArrayOfString>
</value>
</setting>

В Приложении.config,

<add key="YOURKEY" value="a,b,c"/>

В C#,

СТРОКОВЫЙ МАССИВ:

string[] InFormOfStringArray = ConfigurationManager.AppSettings["YOURKEY"].Split(',').Select(s => s.Trim()).ToArray();

Список :

 List<string> list = new List<string>(InFormOfStringArray);

Comments

    Ничего не найдено.