我有一个接口definded这样的:

public interface IDatabase{ void Get<TTypeToFetch> ();}

当我试图这样做:Mockery mockery = new Mockery(); IDatabase db = mockery.NewMock<IDatabase>(); 我得到的以下错误:

系统。TypeLoadException:系统。TypeLoadException:签名的身体和宣言中的一方法的执行不匹配

什么是错的?(I am使用Visual Studio2008年nmock2) 请每个人给我一个答案,我必须完成这。谢谢, 路易莎

有帮助吗?

解决方案

我觉得这可能是一个问题与NMock,甚至可能是一个错误。的类型 IDatabase 不是通用的,所以当你调用 Get<T>, 不同 Ts可以用在运行时间。但是,当NMock产生的模拟,它似乎不了解,这种情况,并kablammo--每种方法的签名是不同的,根据不同类型参数提供。

试试这样做,而不是:

public interface IDatabase<T> {
  void Get<T>();
}

此外,不应该的类型 GetT, ,不 void?

其他提示

我有我自己的接口相同的异常。当我改变接口是公共一切运行正常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top