我的界面定义如下:
public interface IDatabase{ void Get<TTypeToFetch> ();}
当我尝试做的时候:
Mockery mockery = new Mockery();
IDatabase db = mockery.NewMock<IDatabase>();
我收到以下错误:
System.TypeLoadException:System.TypeLoadException:方法实现中正文和声明的签名不匹配
有什么问题? (我正在使用带有nmock2的Visual Studio 2008) 请大家给我一个答案,我必须尽快完成。 谢谢, 路易莎
答案 0 :(得分:0)
我认为这可能是NMock的一个问题,甚至可能是一个bug。类型IDatabase
不是通用的,因此当您调用Get<T>
时,可以在运行时使用不同的T
。但是当NMock生成模拟时,它似乎并不理解这种情况,并且kablammo - 每个方法签名都不同,具体取决于提供的类型参数。
尝试这样做:
public interface IDatabase<T> {
void Get<T>();
}
此外,Get
的类型不应该是T
,而不是void
?
答案 1 :(得分:0)
我在自己的界面上遇到了同样的异常。当我将界面更改为公开时,一切运行正常。