ASP.net, почему я не могу получить доступ к этому ключу web.config? - PullRequest
1 голос
/ 06 марта 2011
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 ]

1 голос
/ 06 марта 2011

ConfigurationSettings.AppSettings - правильный подход.

Вам не нужен объект Config.Вам нужно использовать OpenWebConfiguration, только если вы собираетесь писать в файл web.config.Нет необходимости просто читать данные конфигурации.

Редактировать: Когда запускается любое приложение .Net, данные его файла конфигурации считываются в память и кэшируются там на время существования приложения.,Общее предположение состоит в том, что данные конфигурации будут использоваться в достаточной степени, чтобы гарантировать такое использование памяти, и что будет целесообразно избежать затрат на открытие файла и чтение XML каждый раз, когда приложению требуется информация о конфигурации.

1 голос
/ 06 марта 2011
var commentsPerPage = ConfigurationSettings.AppSettings["BlogCommentsPerPage"];

сделать нулевую проверку и затем вызвать ToString() или Convert.ToInt32()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...