调用“new [classname]”给出nullReferenceException

时间:2012-08-29 18:00:02

标签: c# .net

我创建了一个新类,我得到一个空引用异常,我无法弄清楚原因。

  

对象引用未设置为对象的实例。

    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为空的问题,我做了一个监视,它不是null。然而,关于“new Returner()”的手表给了我这个:

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

3 个答案:

答案 0 :(得分:5)

HTTPContext.Current是否为空?如果是null,您将获得NullReferenceException

答案 1 :(得分:5)

HTTPContext.Current或HTTPContext.Current.Session可能更有可能是空的

答案 2 :(得分:1)

您的媒体资源HTTPContext.Current为空