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


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

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

  • 相关阅读:
    C# 面向对象系列笔记(三)
    C# 面向对象系列笔记(二)
    分享一下: C# 面向对象系列笔记(一) ,希望对大家有所帮助
    新人报到
    VUE+ELEMENT-UI的后台项目封装组件--查询form的封装
    vue+element-ui的后台项目封装组件--面包屑的封装
    数组对象循环格式化时间撮的转换
    VUE+ELEMENT-UI的后台项目封装组件--table的封装
    css的样式问题
    vue项目兼容es6语法跟IE浏览器
  • 原文地址:https://www.cnblogs.com/LILING3/p/7422749.html
Copyright © 2020-2023  润新知