我目前有以下代码
public IList<string> CensoredWords { get; private set; }
public Censor()
{
this.CensoredWords = new List<string>
{
"word1",
"word2",
"word4"
};
}
我的web.config文件包含以下内容
<add key="keywords" value="word1,word2,word3" />
显然不是很好,特别是如果你想添加新单词ect所以我已经修改了一下这个
public Censor()
{
this.CensoredWords = new List<string> { System.Web.Configuration.WebConfigurationManager.AppSettings["keywords"] };
}
我也试过
public Censor()
{
string[] keywords = System.Web.Configuration.WebConfigurationManager.AppSettings["keywords"].Split(new char[] { ',' });
foreach(string keyword in keywords)
{
this.CensoredWords.add(keyword);
}
}
但由于某些原因,似乎没有任何工作,任何人都可以告诉我为什么
答案 0 :(得分:1)
实际上,看着它你有以下几点:
public IList<string> CensoredWords { get; private set; }
尝试将其设置为非私密。
除此之外,这段代码有效:
string keywords = "Value1,Value2,Value3";
List<string> censoredWords = keywords.Split(',').ToList();
答案 1 :(得分:0)
由于您正在从web.config文件中读取密钥(因此假设您不想编辑应用程序本身的删失字词),因此您不需要set
属性。
您可以读取静态对象中的值,以便它们可以在任何地方使用,而无需每次都重新解析列表:
private static readonly List<string> _censoredWords = System.Configuration.ConfigurationManager.AppSettings["keywords"].Split(',').ToList();
public static IList<string> CensoredWords
{
get
{
return _keywords;
}
}
答案 2 :(得分:0)
这应该解决:
this.CensoredWords = new List<string>(System.Web.Configuration.WebConfigurationManager.AppSettings["keywords"].Split(','));