ASP.net为什么我不能访问这个web.config密钥?

时间:2011-03-06 20:06:22

标签: c# asp.net web-config

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行上

2 个答案:

答案 0 :(得分:1)

var commentsPerPage = ConfigurationSettings.AppSettings["BlogCommentsPerPage"];

进行空检查,然后致电ToString()Convert.ToInt32()

答案 1 :(得分:1)

ConfigurationSettings.AppSettings是正确的方法。

您不需要Config对象。如果您要写入OpenWebConfiguration文件,则只需使用web.config。只需读取配置数据就不需要了。

编辑:当任何.Net应用程序启动时,其配置文件数据将被读入内存并在应用程序的生命周期内缓存。一般的假设是配置数据的使用足以保证内存的使用,并且每次应用程序需要配置信息时,都应该避免打开文件和读取XML的成本。