如何在app.config中获取数组或列表信息?我希望用户能够尽可能多地放置IP(或根据需要)。我的程序只需要在app.config中指定的任何内容。怎么做?
<?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"];
答案 0 :(得分:24)
最简单的方法是在App.config文件中使用逗号分隔列表。当然你可以编写自己的配置部分,但如果它只是一个字符串数组,那么这样做有什么意义呢,保持简单。
<configuration>
<appSettings>
<add key="ips" value="z,x,d,e" />
</appSettings>
</configuration>
public string[] ipArray = ConfigurationManager.AppSettings["ips"].Split(',');
答案 1 :(得分:14)
您可以将设置设计器中的设置类型设置为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>
答案 2 :(得分:4)
在App.config中,
<add key="YOURKEY" value="a,b,c"/>
在C#中,
STRING ARRAY:
string[] InFormOfStringArray = ConfigurationManager.AppSettings["YOURKEY"].Split(',').Select(s => s.Trim()).ToArray();
列表:
List<string> list = new List<string>(InFormOfStringArray);