類型初始值設定項引發異常 解決方法


【轉】類型初始值設定項引發異常 解決方法

更多 2014/8/29 來源:ASP.NET學習瀏覽量:36072
學習標簽: 異常
本文導讀:我們知道,類型初始化或者訪問類型的靜態成員時,都會對類中的其他靜態成員進行初始化,並執行靜態構造函數,當引用一個含有靜態成員的類時,如果給靜態成員初始化時發生異常,那么就會產生System.TypeInitializationException 類型初始值設定項引發的異常。下面介紹類型初始值設定項引發異常的解決方法

 

一、產生TypeInitializationException的情況就包含以下幾種

 

1. 訪問類的某一靜態成員,而其他靜態成員的初始化(或靜態構造函數)中產生異常。例如訪問ClassHelper.StaticString,由於靜態成員Field的初始化產生異常,因此調用ClassHelper.StaticString會拋出TypeInitializationException。

2. 訪問類的某一靜態成員,該靜態成員的初始化(或靜態構造函數)中產生異常。

3. 對該類進行初始化,而類中的某個靜態成員初始化(或靜態構造函數)中產生異常。

 

 

二、產生TypeInitializationException的實例

 
 
實例1
 
C# 代碼   復制
     
     
     
             public class ClassName
{
public static int m = int.Parse("d");
public ClassName
{}
}

當第一次引用此類時,語句public static int m = int.Parse("d"); 就會被執行,此時就會報出 TypeInitializationExeption類型的異常。

 

實例2

 
C# 代碼   復制
     
     
     
             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中,將訪問的窗體控件的語句寫在初始化方法之后


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM