具有泛型返回类型 的摩尔静态方法

本文关键字:静态方法 泛型 返回类型 | 更新日期: 2023-09-27 18:32:25

我正在尝试在一个非常大且膨胀的系统上实现一个使用单元测试的框架,主要问题是系统的 70% 是用静态方法实现的。是我到达鼹鼠的方式,我非常有信心我会达到我的目标(我已经很接近了)。

我现在遇到的问题是我正在尝试使用泛型参数来摩尔静态方法:

public static T ExecScalar<T>(IDbConnection cx, string commandText, IDbTransaction tx, IEnumerable<IDbDataParameter> parameters)

在网上谷歌搜索我发现了这条论坛消息:

http://social.msdn.microsoft.com/Forums/uk/pex/thread/3faadca2-a26f-449c-942e-d800a6079e02

这正是我的问题,建议阅读第10页的手册。

我已经阅读了第 10 页的手册,但它谈论的是存根而不是蹲皮。我尝试应用所描述的解决方案,但如果我提出:

Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter<int> = delegate(IDbConnection conn, String command, IDbTransaction trx, IEnumerable<IDbDataParameter> parameters)

我得到:

"只有赋值、调用、递增、递减和新对象表达式可以用作语句"

我也尝试过:

Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter<T> = delegate(IDbConnection conn, String command, IDbTransaction trx, IEnumerable<IDbDataParameter> parameters)

我得到同样的错误

或:

Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter = null;

然后我得到:

"无法分配给'ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter',因为它是一个'方法组'"

请问,任何人都可以帮助我如何使用泛型类型输出模拟静态方法吗?

具有泛型返回类型 <T> 的摩尔静态方法

试试这个:

Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumera‌​bleOfIDbDataParameter<int>((IDbConnection conn, String command, IDbTransaction trx, IEnumerable<IDbDataParameter> parameters) => { return 5; });