意外的异常:System.TypeInitializationException

时间:2013-11-25 18:56:32

标签: c# .net exception sqlconnection

使用c#,。NET Framework 4.5

尝试用下一个代码创建简单的程序:

 enum DataProvider { Sqlserver, Obdc, Oledb, None }

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("simple database connection factory");
        IDbConnection Idbc = GetConnection(DataProvider.Sqlserver);
        Console.WriteLine("your connection - {0}", Idbc.GetType().Name);
        Console.ReadLine();
    }
    private static IDbConnection GetConnection(DataProvider dataProvider)
    {
        IDbConnection connection = null;
        switch (dataProvider)
        {
            case DataProvider.Sqlserver:
                connection = new SqlConnection();
                break;
            case DataProvider.Oledb:
                connection = new OleDbConnection();
                break;
            case DataProvider.Obdc :
                connection = new OdbcConnection();
                break;
        }
        return connection;
    }
}

第一次运行正常 - 需要结果,但现在在Exceptions: System.TypeInitializationException字符串上获得connection = new SqlConnection();

请参阅MSDN中的帮助,但只能找到When a class initializer fails to initialize a type, a TypeInitializationException is created and passed a reference to the exception thrown by the type's class initializer但是什么是初始化类型失败的原因?为什么第一次运行正常,第二次出错?

1 个答案:

答案 0 :(得分:0)

AhmetKakıcı所述 - 检查内部异常 - 如下图所示播种

Cheking of inner exception

发现了很多无意义的异常,最后一个是描述{System.Configuration.ConfigurationException[1]}

尝试重置MyApp.exe.config文件(将默认值设置如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

结果 - 现在一切都好。

真正的原因是什么发生.config文件 - 真的不知道......