C#App.Config包含数组或列表之类的数据

C# App.Config with array or list like data

如何在app.config中拥有类似数组或列表的信息?我希望用户能够放置尽可能多的IP(或根据需要)。我的程序只接受app.config中指定的任何内容。如何做到这一点?

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 
   
   
   
    </appSettings>
</configuration>



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


最简单的方法是在app.config文件中使用逗号分隔的列表。当然,您可以编写自己的配置部分,但是这样做的意义是什么?如果它只是一个字符串数组,那么保持简单。

1
2
3
4
5
6
7
<configuration>
 
   
  </appSettings>
</configuration>

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

您可以将设置设计器中的设置类型设置为StringCollection,这允许您创建字符串列表。

Screenshot

您可以稍后以Properties.Settings.Default.MyCollection[x]的形式访问各个值。

app.config文件中,如下所示:

1
2
3
4
5
6
7
8
<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>


在App.config,

2

在C,

字符串数组:

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

名单:

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