繁体   English   中英

在C#中调用通用方法时MissingMemberException

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM