我的项目包含web.config文件和外部appSettings文件。我正在创建一个WebConfig编辑器,它具有从web.config和外部appSetting文件中读取AppSettings键的选项,以便在webPage上显示它们。 此外,我允许用户通过单击“删除”按钮删除任何键。 此外,用户还可以通过单击更新按钮更新任何键的值。或者 他还可以通过点击Add New Key按钮插入新密钥。
我面临的关键问题是,当我尝试添加新密钥时,它会被插入 web.config文件按预期方式,但同时它将外部appSettings文件中存在的所有键添加到web.config(这是突然的行为)。
如何在任何密钥的更新/删除/添加功能上停止将密钥从外部appSettings文件迁移到web.config?
答案 0 :(得分:1)
对于读取,将外部文件放在root下的Config文件夹中,然后使用此代码根据从web.config或外部文件中读取的键名读取键/值。
// get from web.config
String myKey = ConfigurationManager.AppSettings.Get("Key1");
String str += "AppSetting value from web.config:" + myKey;
// get from external AppSetting file
myKey = ConfigurationManager.AppSettings.Get("Key2");
String str2 += "AppSetting value from external AppSetting file:" + myKey;
其中Key1位于web.config中,而Key2位于外部配置文件中
也
要查找al键值,请使用foreach
循环
foreach (string key in ConfigurationManager.AppSettings)
{
string value = ConfigurationManager.AppSettings[key];
Console.WriteLine("Key: {0}, Value: {1}", key, value);
}
答案 1 :(得分:0)
在读取键时,使用web.config文件和外部应用程序设置文件的键添加唯一签名。 在web上只显示密钥而不是签名,当你添加密钥时添加相同的签名(如果为web.config添加web.config的签名)并且当写入web.config时,如果密钥的签名,则应用签名检查是外部应用程序设置文件然后忽略该密钥,否则写入密钥。
它是简单的解决方案,如果你有任何疑问,请问