MissingMethodException当没有反射中使用
问题描述:
我有以下类MissingMethodException当没有反射中使用
public class Value
{
...
public virtual Unit Unit { get; set; }
}
它在由主模块引用组件定义。在主模块中,有简单代码
private void SaveData()
{
Value value = GetValue();
//some code here
Results.Add(new Result
{
Unit = (int)value.Unit,
});
}
对进入SaveData方法,我得到了MissingMethod异常。 SaveData的执行甚至不会启动。下面是例外情况msg
未找到方法:'Unit Value.get_Unit()'。
这怎么会发生?我根本不使用反射,所以这个异常来自哪里? 感谢您的帮助提前
答
它看起来就像你在一个点上添加Value.Unit
成员,但正在运行的组件包含SaveData()
方法针对较旧版本的其他组件,从收到载于本方法。因此运行时期望有一种方法存在,但它不存在。这导致JIT编译SaveData()
失败,从而阻止它被执行。
仔细检查此应用程序正在使用的所有程序集是否与最新版本保持同步。
我怀疑你以某种方式编译了不同于你加载的不同版本的库。 – CodesInChaos
这两个程序集在同一目录中? – leppie