您的位置:首页 > 编程学习 > ASP.NET > 正文

类型初始值设定项引发异常 解决方法

更多 时间:2014-8-29 类别:编程学习 浏览量:42692

类型初始值设定项引发异常 解决方法

类型初始值设定项引发异常 解决方法

 

一、产生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中,将访问的窗体控件的语句写在初始化方法之后

     

    标签:异常
    您可能感兴趣