public partial class MasterPages_Main : System.Web.UI.MasterPage
{
public string TopMenuTab;
public string SubMenuTab;
public Configuration Config = WebConfigurationManager.OpenWebConfiguration(null);
protected void Page_Load(object sender, EventArgs e)
{
ContentMenu.TopTabSelected = TopMenuTab;
ContentMenu.SubTabSelected = SubMenuTab;
Response.Write("K" + Config.AppSettings.Settings["BlogCommentsPerPage"].ToString());
}
}
在web.config中:
<appSettings>
<!-- Website settings -->
<add key="BlogCommentsPerPage" value="3" />
我明白了:
System.NullReferenceException: Object reference not set to an instance of an object.
在response.write行上
答案 0 :(得分:1)
var commentsPerPage = ConfigurationSettings.AppSettings["BlogCommentsPerPage"];
进行空检查,然后致电ToString()
或Convert.ToInt32()
答案 1 :(得分:1)
ConfigurationSettings.AppSettings
是正确的方法。
您不需要Config
对象。如果您要写入OpenWebConfiguration
文件,则只需使用web.config
。只需读取配置数据就不需要了。
编辑:当任何.Net应用程序启动时,其配置文件数据将被读入内存并在应用程序的生命周期内缓存。一般的假设是配置数据的使用足以保证内存的使用,并且每次应用程序需要配置信息时,都应该避免打开文件和读取XML的成本。