静态类未初始化

时间:2019-02-04 14:34:18

标签: c# asp.net .net .net-4.5

public static class Locals
{
    static Locals()
    {
        KEY_DISPLAYURL = "DisplayUrl";
        DISPLAY_URL = bool.Parse(ConfigurationManager.AppSettings.Get(KEY_DISPLAYURL)
                                 .ToString());
    }

    public static string KEY_DISPLAYURL;
    public static bool DISPLAY_URL;
}

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Locals.DISPLAY_URL)
            Response.Redirect("Login.aspx");
        else
            Server.Transfer("Login.aspx");
    }
}
  • 访问Locals.DISPLAY_URL时,将获得NullReferenceException 抛出。
  • 静态类中的断点不会发生。
  • 调试器的监视窗口显示一个值
  • 更改为发行版没有帮助。

我如何理解静态类,当它被访问时应该初始化。

可能是什么原因,如何进一步调试?

1 个答案:

答案 0 :(得分:-4)

Locals为空,因为其初始化程序引发了异常。

您可以在NullReferenceException之后继续执行,并且asp.net将显示带有错误的网页。

不要无条件地信任您的IDE,在这种情况下,它会错误地报告并且无法达到断点。