2010-11-10 34 views
0
static void Main() 
{ 
    AppHelper helper = new AppHelper(); 
    // more stuff 
} 

編譯正常使用CSC.EXE,但在運行時會引發的NullReferenceException: 未處理的異常信息:System.NullReferenceException:未設置爲一個對象的實例對象引用。 在AppHelper..ctor()的NullReferenceException上實例線調用新

public class AppHelper 
{ 
    private string connect = System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ToString(); 

    public AppHelper() 
    { 
     // TODO 
    } 
} 

調試器定位的connectionString從app.config中但運行可執行扼流圈。

+0

什麼是整個類聲明?堆棧跟蹤中的行號是什麼? – SLaks 2010-11-11 00:03:12

回答

6

您的AppHelper構造函數或其內聯字段初始值設定項中的代碼使用null參考。

如果您在調試器中運行代碼,它會在哪裏破壞?

+0

哦,你打敗了我。 +1 – Aliostad 2010-11-10 23:55:56

+0

在調試器中不會中斷。只有在運行可執行文件時纔會中斷。似乎是私人字符串connect = System.Configuration.ConfigurationManager.ConnectionStrings [「connectionString」]。ToString();就好像可執行文件無法找到配置文件。但是,當我編譯時,我指出csc /appconfig:app.config。 – Suz 2010-11-11 00:21:14

1

你在做什麼AppHelper類的構造函數?

+0

那麼他似乎不是隻有TODO評論在那裏。 – Aliostad 2010-11-10 23:57:41

+0

nope,構造函數如所見 – Suz 2010-11-11 00:00:08

0

代碼看起來不錯。問題在別的地方或代碼是不同的。

我能想到的唯一的事情就是你碰巧在這個類中有內聯初始化器,例如

public class AppHelper 
{ 

    string something = null; 
    int somethingLength = something.Length; 

    public AppHelper() 
    { 
     // TODO 
    } 
0

需要將app.config複製到$ {exeName} .exe.config。這就是我最終解決問題的方法。

相關問題