关于asp.net:Store String Array在appSettings?

Store String Array In appSettings?

我想在我的appSettings中存储一个一维字符串数组作为条目。我不能简单地用,|分隔元素,因为元素本身可以包含这些字符。

我考虑将数组存储为JSON,然后使用JavaScriptSerializer对其进行反序列化。

有没有更好的方法?

(我的JSON想法有点老土)


您可以将appsettings与System.Collections.Specialized.StringCollection一起使用。

1
2
3
4
5
var myStringCollection = Properties.Settings.Default.MyCollection;
foreach (String value in myCollection)
{
    // do something
}

每个值用新行分隔。

这是一个屏幕截图(德国IDE,但无论如何可能会有所帮助)

enter image description here


对于整数,我发现下面的方法更快。

首先,在app.config中创建一个由逗号分隔的整数值的appsettings键。

2

然后使用LINQ将值拆分并转换为int数组

1
int[] myIntArray =  ConfigurationManager.AppSettings["myIntArray"].Split(',').Select(n => Convert.ToInt32(n)).ToArray();


对于字符串,只需将以下内容添加到您的web.config文件中即可:

2

然后您可以按如下方式将值检索到数组中:

1
var myArray = ConfigurationManager.AppSettings["myStringArray"].Split(',');


为此,您还可以考虑使用自定义配置节/集合。这是一个示例:

1
2
3
4
5
6
7
8
9
<configSections>
    <section name="configSection" type="YourApp.ConfigSection, YourApp"/>
</configSections>

<configSection xmlns="urn:YourApp">
  <stringItems>
    <item value="String Value"/>
  </stringItems>
</configSection>

您还可以检查这个优秀的Visual Studio外接程序,它允许您以图形方式设计.NET配置节,并自动为它们生成所有必需的代码和架构定义(XSD)。