1. 前提准備:
Web.config file:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings configSource="Config\app.config"></appSettings>
</configuration>
Ps. configSource="Config\app.config",此處一定要使用反斜杠“\”;
app.config file:
<?xml version="1.0"?>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="CHINA" value="Asia"/>
</appSettings>
調用方法並輸出結果:
public string GetAppSettingValue()
{
string value = ConfigurationManager.AppSettings["CHINA"].ToString();
return value;
}
2. 測試configSource:
由於以上代碼用的測試例子為configSource,所以在補充相應的代碼后可以直接運行;
結論:可以正確的輸出結果:"Asia".在不重新啟動IIS的情況下修改app.config中key="CHINA"的value為“BEIJING”,然后刷新頁面,更新后的值"BEIJING"被正確輸出。
3. 測試file:
將Web.config中的configSource修改為file,同時修改app.config中key="CHINA"的value為“Asia”, 在補充相應的代碼后運行;
結論:可以正確的輸出結果:"Asia". 在不重新啟動IIS的情況下重新修改app.config中key="CHINA"的value為“BEIJING”,然后刷新頁面,更新后的值"BEIJING"沒有被輸出,輸出依然是"Asia"。
4. 總結:Web.config中引用app.config有兩種方式:file或者ConfigSource,區別是file只能用於<appSettings>節點。通過測試還發現,file屬性中指定文件名稱時正斜杠"/"和反斜杠“\”都可以被正確解析,而configSource只能解析反斜杠“\”。修改Web.config內容后需要重啟IIS,而修改app.config后則沒有這個要求。