繁体   English   中英

我遇到了异常:'mws.Options_DB'的类型初始化器引发了异常。 这是什么意思?

[英]I got exception: The type initializer for 'mws.Options_DB' threw an exception. what does it mean?

可能是什么问题呢 ? 每次相同的异常都会发生该异常。 这是在我单击按钮并将其调用时引发异常的行:

public void Save()
        {
            Options_DB.Set_Points_Coordinates_List(Point_X);
        }

Point_X是Float类型的列表

无法找出解决问题的方法。

我在Form1中有一个按钮单击事件,在这里我在另一个类中调用上面的函数:Save()

当它在Save()函数中执行以下代码时(在Options_DB类中进行操作并在其顶部执行操作),我在其中使用了断点:

static List<float> Points_Coordinates;
        static string settings_dir;
        static string settings_file;
        static OptionsFile setting_file;
        static string path_settings;
        static string path_exe;

        static Options_DB()
        {
            // ---  O P E N N I N G   S E T T I N G   F I L E   
            //t = voices_volume_trackbar.ToString();
            path_exe = Path.GetDirectoryName(Application.LocalUserAppDataPath);
            path_settings = Path.GetDirectoryName(Application.LocalUserAppDataPath);
            settings_file = "\\settings.txt";
            settings_dir = path_settings + @"\settings";
            setting_file = new OptionsFile(settings_dir + settings_file);

当它到达该行时: setting_file = new OptionsFile(settings_dir + settings_file); 它进入OptionsFile类,并尝试在异常中创建目录和文件:

string path_exe;
        string temp_settings_file;
        string temp_settings_dir;
        string Options_File;
        StreamWriter sw;
        StreamReader sr;

/*----------------------------------------------------------
 * Function     : OptionsFile
 * Description  : Constructor
 * Parameters   : file_name is the name of the file to use
 * Return       : none
 * --------------------------------------------------------*/
    public OptionsFile(string settings)
    {

        if (File.Exists(settings))
        {

        }
        else
        {
        FileStream fs=File.Create(settings);

但是一旦断点在行File.Create(settings); 而且我看到包含路径和文件名的设置,而不是创建它们,然后跳回Save()函数到那里的行,然后引发异常。

为什么跳转到Save()而不创建路径和文件?

该异常意味着无法初始化该类型的某些静态成员,或者该类型的静态构造函数失败。 检查那些。

您的堆栈跟踪明确表明问题是

在D:\\ C-Sharp \\ AnimationEditor \\ AnimationEditor \\ Options_DB.cs:行30中的mws.Options_DB..cctor()

.cctor()是静态构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM