Приложение 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"];
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