在Web Config Editor中读取和写入appsettings的键

时间:2011-03-02 07:10:17

标签: asp.net web-config appsettings

我的项目包含web.config文件和外部appSettings文件。我正在创建一个WebConfig编辑器,它具有从web.config和外部appSetting文件中读取AppSettings键的选项,以便在webPage上显示它们。 此外,我允许用户通过单击“删除”按钮删除任何键。 此外,用户还可以通过单击更新按钮更新任何键的值。或者 他还可以通过点击Add New Key按钮插入新密钥。

我面临的关键问题是,当我尝试添加新密钥时,它会被插入 web.config文件按预期方式,但同时它将外部appSettings文件中存在的所有键添加到web.config(这是突然的行为)。

如何在任何密钥的更新/删除/添加功能上停止将密钥从外部appSettings文件迁移到web.config?

2 个答案:

答案 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时,如果密钥的签名,则应用签名检查是外部应用程序设置文件然后忽略该密钥,否则写入密钥。

它是简单的解决方案,如果你有任何疑问,请问