C# 如何在web.config中将项目读入数组
我正在尝试从web.config文件(在IIS中)中的项构建字符串数组 web.configC# 如何在web.config中将项目读入数组,c#,asp.net,iis,web-config,C#,Asp.net,Iis,Web Config,我正在尝试从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>
<appSettings>
<add key="favourite" value="url1; site1" />
<add key="favourite" value="url2; site2" />
<add key="favourite" value="url3; site3" />
</appSettings>
我希望每个favorite都能用分号读入string[]\u favorites数组(稍后我会解析出来)。web.config是一个XML文件,因此我可以将其作为一个文件打开并提取数据,但有没有更简单的方法使用ConfigurationManager来实现这一点?我不知道是否有黑客可以做到这一点,但我只需要一个设置和多个值
<appSettings>
<add key="favourite" value="url1;site1;url2;site2;url3;site3;" />
</appSettings>
或
另一种解决方案是使用单独的配置文件或将其存储在数据库中
我想收藏夹可能会更改,更改web.config
会产生后果-它可能会导致您的应用程序重新启动。怎么样:
1.右键单击项目>属性
2.导航到“设置”。如果显示,则此项目没有设置文件。单击以创建一个。
3.创建SystemCollections.Specialized.StringCollection
4.根据需要命名(我的示例StatusReason)。在e右边的线的末尾有…(三)个点
5.按它们并添加所需的设置。每行一个。
样本:
在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>
将项目引用添加到属性:
using WebApplication.BookServices.Properties;
这里有一个设置数组。如果在单个键中添加所有数组值,如-
<appSettings>
<add key="favourite" value="url1;site1,url2;site2,url3;site3" />
</appSettings>
然后用“,”(逗号)像这样分割字符串-
string[ ] _favouritesArr = _favourites.Split(',');
这将给出数组中的所有值_favoritesar.Duplicate?-请参阅:
ConfigurationManager。Appsettings
将仅返回密钥的最后一个值。我在这里找到了一个解决方法,但我还没有测试过。不,那不是我要找的。把所有这些放在字符串[]电子邮件中。重复键有意义吗?添加分隔符“;”对不起,我的榜样不适合你的直接需要。我的分隔符是“=”,并将它们添加到dictionaryvar settings=settings.Default.StatusReason;Dictionary statusReason=新建字典();foreach(设置中的变量集){string[]words=set.Split('=');statusReason.Add(words[1],words[0]);}
var settings = Settings.Default.StatusReason;
//TODO add any logic, if needed to split
using WebApplication.BookServices.Properties;
<appSettings>
<add key="favourite" value="url1;site1,url2;site2,url3;site3" />
</appSettings>
public string _favourites = ConfigurationManager.AppSettings["favourite"];
string[ ] _favouritesArr = _favourites.Split(',');