调用"new [classname]"给出nullReferenceException

JMD*_*JMD 0 .net c#

我创建了一个新类,我得到一个空引用异常,我无法弄清楚为什么.

你调用的对象是空的.

    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;
                }
            }


    }
}
Run Code Online (Sandbox Code Playgroud)

当我调用"new Returner()"时,错误发生在底部,在"var ret"行的末尾.

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

 Returner.Instance.returnerID = id;
Run Code Online (Sandbox Code Playgroud)

编辑

为了解决HTTPContext.Current为空的问题,我做了一个监视,它不是null.但是,关于"new Returner()"的手表给了我这个:

Instance = 'TIMBaseClasses.ReturnerTracking.Returner.Instance' threw an exception of type 'System.NullReferenceException'
Run Code Online (Sandbox Code Playgroud)

Guv*_*nte 5

HTTPContext.Current的非空?如果是的话null,你会得到一个NullReferenceException.


Jas*_*yne 5

它可能更有可能是HTTPContext.Current或HTTPContext.Current.Session为null