如何在web.config中将数组读入数组
我试图从web.config文件(在IIS中)中的项目构建字符串数组。如何在web.config中将数组读入数组
的web.config
<appSettings>
<add key="favourite" value="url1; site1" />
<add key="favourite" value="url2; site2" />
<add key="favourite" value="url3; site3" />
</appSettings>
C#
// Reads first favourite into string.
public string _favourites = ConfigurationManager.AppSettings ["favourite"];
我希望每个喜爱读入串[] _favourites阵列与分号(我会在稍后解析)。 web.config是一个XML文件,所以我可以打开它并将数据拉出,但有没有更简单的方法来使用ConfigurationManager来完成此操作?
我不知道是否有黑客做到这一点,但我只会有一个设置与多个值;
<appSettings>
<add key="favourite" value="url1;site1;url2;site2;url3;site3;" />
</appSettings>
或
<appSettings>
<add key="favourite" value="url1=site1;url2=site2;url3=site3;" />
</appSettings>
另一种解决方案是单独的配置文件或存储此在数据库中。
我想象最喜欢会改变,并且改变web.config
有后果 - 它可能会导致您的应用程序重新启动。
如何: 1.右键点击项目>属性 2.导航到设置。如果显示,该项目没有设置文件。点击创建一个。 3.创建一个SystemCollections.Speciliazed.StringCollection 4.根据需要命名它(我的示例StatusReason)。并在e行右边有...(三个)点 5.按下它们并添加所需的设置。每行一个。 示例:
Valid=979580000
Invalid=979580001
Broken=979580002
ReadyForCollect=979580003
Missing=979580004
Refine=979580005
并在web配置它看起来像这样。
<applicationSettings>
<WebApplication.BookServices>
<setting name="StatusReason" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>Valid=979580000</string>
<string>Invalid=979580001</string>
<string>Broken=979580002</string>
<string>ReadyForCollect=979580003</string>
<string>Missing=979580004</string>
<string>Refine=979580005</string>
</ArrayOfString>
</value>
</setting>
</WebApplication.BookServices>
</applicationSettings>
,让你的字符串数组:
var settings = Settings.Default.StatusReason;
//TODO add any logic, if needed to split
您的项目引用添加到属性:
using WebApplication.BookServices.Properties;
有你有设置一个数组。
添加分隔符';'对不起,我不适合你的直接需求。我的分隔符是'='并将它们添加到字典'var settings = Settings.Default.StatusReason; Dictionary
如果你添加单钥匙所有数组值一样 -
<appSettings>
<add key="favourite" value="url1;site1,url2;site2,url3;site3" />
</appSettings>
阅读键值为一个字符串 -
public string _favourites = ConfigurationManager.AppSettings["favourite"];
,然后分割字符串“”(逗号)像这样 -
string[ ] _favouritesArr = _favourites.Split(',');
这将给出数组_favouritesArr中的所有值。
重复? - 请参阅:https://*.com/questions/11728491/add-array-to-key-in-web-config –
'ConfigurationManager.Appsettings'只会返回密钥的最后一个值。我在这里找到了一个解决方法,但是我没有对它进行测试。 https://www.codeproject.com/Articles/4302/How-to-make-AppSettings-work-with-multiple-values – Norsk
不,这不是我要找的。 把所有的字符串[]电子邮件。 –
UltraJ