[英]MissingMemberException when calling generic method in C#
运行单元测试时,我收到以下异常:
测试方法引发异常:System.MissingMethodException:未找到方法:'System.String DataUtilities.HelperMethods.Serialize(!! 0)'..
这仅在运行单元测试时发生,而在调试时则不会发生。 当我调试它时,没有错误发生。
该方法的签名称为:
public static string Serialize<T>(T value)
该方法位于引用的dll中。
我注意到以下内容:在引用的dll中,有一个方法将对Serialize(T value)方法的调用包装起来。
它的代码是:
public static string SerializeList(List<object> list)
{
TraceClass.Write("something",list);
string x = HelperClass.Serialize<List<object>>(list);
TraceClass.Write(x);
return x;
}
如果我使用此“间接”调用HelperClass.Serialize,则效果很好。 在调试和正常运行模式下。
我究竟做错了什么?
我将检查以确保在运行单元测试时未从其他位置引用该dll。 您很可能在测试运行程序发现的某个位置周围放着一个旧的dll文件,这就是为什么您会收到该错误的原因。
好。 老实说,我真的不知道是什么使它现在起作用,但是它正在运行。
我删除了所有直接引用的项目的所有bin和object文件夹。 用于创建测试所需的文件夹结构的所有中间文件夹。 所有旧的Testresult文件夹。
然后全部重建。
现在可以了。
以前,我已经对所有相关程序集进行了此操作。 显然这还不够。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.