0

我创建了一个新类,我得到一个空引用异常,我不知道为什么。

你调用的对象是空的。

    namespace TIMBaseClasses.ReturnerTracking
{
    [Serializable]
    public class Returner
    {
            private Guid _returnerID;
            private string _clientIP;

            public Guid returnerID {get { return _returnerID; } set { _returnerID = value; }}
            public string clientIP {get { return _clientIP; } set { _clientIP = value; }}


            /// <summary>Constructor that sets the default values as needed</summary>
            public Returner()
            {
                returnerID = Guid.Empty;
                clientIP = string.Empty;
            }

            public static Returner Instance
            {
                get
                {
                    var ret = (Returner)(HttpContext.Current.Session["Returner"] ?? new Returner());
                    HttpContext.Current.Session["Returner"] = ret;
                    return ret;
                }
            }


    }
}

当我调用“new Returner()”时,错误发生在最后的“var ret”行的底部。

调用它导致错误的行如下。

 Returner.Instance.returnerID = id;

编辑

为了解决 HTTPContext.Current 为空的问题,我做了一个观察,它不为空。但是,“new Returner()”上的手表给了我这个:

Instance = 'TIMBaseClasses.ReturnerTracking.Returner.Instance' threw an exception of type 'System.NullReferenceException'
4

3 回答 3

5

HTTPContext.Current是非空的吗?如果是null,您将获得一个NullReferenceException.

于 2012-08-29T18:02:28.167 回答
5

它可能更有可能 HTTPContext.Current 或 HTTPContext.Current.Session 为空

于 2012-08-29T18:02:42.347 回答
1

你的财产HTTPContext.Current 是空的

于 2012-08-29T18:03:39.397 回答