我试图从web.config文件中的项目(在IIS中)构建一个字符串数组。
的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"];
我希望每个最喜欢的都能用分号读入 string [] _favourites 数组(我稍后会解析它)。 web.config是一个XML文件,因此我可以将其作为一个文件打开并将数据拉出来,但使用ConfigurationManager是否有更简单的方法来执行此操作?
答案 0 :(得分:1)
如果您将所有数组值添加到单个键中,如< - p>,该怎么办?
<appSettings>
<add key="favourite" value="url1;site1,url2;site2,url3;site3" />
</appSettings>
将该键值作为字符串读取 -
public string _favourites = ConfigurationManager.AppSettings["favourite"];
然后将字符串拆分为','(逗号),就像这样 -
string[ ] _favouritesArr = _favourites.Split(',');
这将给出数组_favouritesArr中的所有值。
答案 1 :(得分:0)
我不知道是否有黑客攻击,但我只有一个设置有多个值;
<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
会产生影响 - 这可能会导致您的应用重启。
答案 2 :(得分:0)
怎么样: 1.右键点击项目&gt;性能 2.导航到设置。如果显示,则此项目没有设置文件。单击以创建一个。 3.创建一个SystemCollections.Speciliazed.StringCollection 4.根据需要命名(我的例子是StatusReason)。在右边的行尾有......(三个)点 5.按下它们并添加所需的设置。每行一个。 样品:
Valid=979580000
Invalid=979580001
Broken=979580002
ReadyForCollect=979580003
Missing=979580004
Refine=979580005
并且在网络配置中看起来就是这样。
<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;
并且您有一系列设置。