使用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
但是什么是初始化类型失败的原因?为什么第一次运行正常,第二次出错?
答案 0 :(得分:0)
如AhmetKakıcı所述 - 检查内部异常 - 如下图所示播种
发现了很多无意义的异常,最后一个是描述{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文件 - 真的不知道......