System.TypeInitializationException
来源:互联网 发布:淘宝哪里输入淘口令 编辑:程序博客网 时间:2024/06/08 20:13
类型初始值设定项引发异常
在单元测试中出现了这个异常,原因是:
由于在测试项目中没有添加配置文件(只有前台网站项目中添加了 web.config)
在单元测试中出现了这个异常,原因是:
由于在测试项目中没有添加配置文件(只有前台网站项目中添加了 web.config)
//通过配置文件获取连接字符串
public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["MyPetShopConnection"].ConnectionString;
public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int result = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return result;
}
/// <summary>
/// 辅助函数
/// </summary>
/// <param name="cmd">命令对象</param>
/// <param name="conn">连接对象</param>
/// <param name="trans">事务对象</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">命令字符串</param>
/// <param name="cmdParms">命令参数</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if(conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
if (trans != null)
cmd.Transaction = trans;
if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
解决方法:添加App.configpublic static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["MyPetShopConnection"].ConnectionString;
public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int result = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return result;
}
/// <summary>
/// 辅助函数
/// </summary>
/// <param name="cmd">命令对象</param>
/// <param name="conn">连接对象</param>
/// <param name="trans">事务对象</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">命令字符串</param>
/// <param name="cmdParms">命令参数</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if(conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
if (trans != null)
cmd.Transaction = trans;
if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="MyPetShopConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Web\MyPetShop\App_Data\MyPetShop.mdf;Integrated Security=True;User Instance=True"/>
</connectionStrings>
</configuration>
<configuration>
<connectionStrings>
<add name="MyPetShopConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Web\MyPetShop\App_Data\MyPetShop.mdf;Integrated Security=True;User Instance=True"/>
</connectionStrings>
</configuration>
教训:如果类中存在静态成员,应确保其初始化时不会抛出异常,否则会影响对该类的正常访问
转 http://www.cnblogs.com/simply-zhao/archive/2008/03/03/1088213.html
阅读全文
0 0
- System.TypeInitializationException
- 未处理System.TypeInitializationException异常处理
- 单元测试System.TypeInitializationException: ......的类型初始值设定项引发异常
- .net System.TypeInitializationException 类型初始值设定项引发异常
- C# 读取app.config配置文件 节点键值,提示 "System.TypeInitializationException 类型初始值设定项引发异常" 错误的解决方案
- “System.TypeInitializationException”类型的异常在 EntityFramework.dll 中发生,但未在用户代码中进行处理
- 由 TypeInitializationException 引起的问题
- 出现错误 未处理的TypeInitializationException
- C# Type initializer的异常 TypeInitializationException
- [TypeInitializationException: “th_AdminManagementFunction.ConvertUrl”的类型初始值设定项引发异常。]
- system
- System
- system
- system
- system
- System
- System
- System
- WebView爬坑之旅4--网页内下载
- xiaogui9527 使用X.509数字证书加密解密实务(三)-- 使用RSA证书结合对称加密技术加密长数据
- 【转】【Quartz】Quartz概述及入门实例
- libevent evbuffer
- Webpack 条件匹配resouce和issuer分别是对被请求文件和模块文件的匹配
- System.TypeInitializationException
- Java中使用Jedis操作Redis
- js 获取前天、昨天、今天、明天、后天的时间
- 学习的开始,学习Python的输入与输出
- 三分钟教你读懂票据是什么
- android权限大全
- 15算法课程 168. Excel Sheet Column Title
- 使用tideways绘制php callgraph(profiling)
- oracle_16进制与10进制转换