2012-08-29 59 views
0

我做了一個新類,得到一個空引用異常,我找不到原因。調用「new [classname]」給出nullReferenceException

未將對象引用設置爲對象的實例。

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


    } 
} 

誤差在結束時會發生向底部,在「VAR RET」線時,我稱之爲「新武者回歸()」。

調用它導致錯誤的行如下。

Returner.Instance.returnerID = id; 

編輯

解決相關問題的HTTPContext.Current是空的,我做了一個表,它不爲空。然而,「新迴歸()」手錶給我這個:

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

這有可能是'HttpContext.Current'爲空,如果你調用這個從錯誤的線程或類似的東西。 – Servy

回答

5

它大概更可能是HTTPContext.Current或HTTPContext.Current.Session爲null

+0

線上的手錶確認它不爲空。會話爲空,然後空合併運算符將我們拖回到以某種方式無效的「新的迴歸者()」。 – JMD

+0

整個會話爲空?或者只是Session [「ret」]返回的值? –

+0

沒關係。我清理並重建,現在錯誤指向HTTPContext.Current爲null,就像您所說的那樣。謝謝。 – JMD

5

HTTPContext.Current非空?如果是null,您將得到一個NullReferenceException

+0

手錶確認它不是空的。 – JMD

1

你的財產HTTPContext.Current爲null

相關問題