【轉】類型初始值設定項引發異常 解決方法
一、產生TypeInitializationException的情況就包含以下幾種
1. 訪問類的某一靜態成員,而其他靜態成員的初始化(或靜態構造函數)中產生異常。例如訪問ClassHelper.StaticString,由於靜態成員Field的初始化產生異常,因此調用ClassHelper.StaticString會拋出TypeInitializationException。
2. 訪問類的某一靜態成員,該靜態成員的初始化(或靜態構造函數)中產生異常。
3. 對該類進行初始化,而類中的某個靜態成員初始化(或靜態構造函數)中產生異常。
二、產生TypeInitializationException的實例
public class ClassName
{
public static int m = int.Parse("d");
public ClassName
{}
}
當第一次引用此類時,語句public static int m = int.Parse("d"); 就會被執行,此時就會報出 TypeInitializationExeption類型的異常。
實例2
class MyClass
{
public static string ConnectionString = GetConnectionString();
private static string GetConnectionString()
{
throw new Exception();
}
}
在使用這個類的時候就會引發該異常
實例3
一個類有如下定義
private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
但是在引用這個類的時候沒有在Web.config里加如下配置時
<appSettings> <add key="WebDAL" value="PDMS.SQLServerDAL"/> </appSettings>
三、類型初始值設定項引發異常的解決方法
1、檢查類中的靜態字段或屬性,確保其能夠正常的完成初始化
2、在類的構造函數中,確保其訪問的屬性或字段都已經完成初始化
3、如果是WinForm中,將訪問的窗體控件的語句寫在初始化方法之后