在现有字段上的C#System.MissingFieldException

时间:2018-11-10 08:33:54

标签: c#

我正在使用C#4.7.2 PRISM Unity 6.2.0

我有这样的公开课

public partial class MyClass
{

    public static string MyFirstString = "MyFirstString";

    public static string MySecondString = "MySecondString";

}

字符串用于注册类型

public void Initialize()
{
    RegisterObjects();  
}

private void RegisterObjects()
{
    container.RegisterType<object, SomeClass>( MyClass.MyFirstString );

    container.RegisterType<object, SomeOtherClass>( MyClass.MySecondString );
}

容器是IUnityContainer,Initiliaze()是IModule(来自PRISM)的成员

SomeClass已注册,没有任何问题。但是SomeOtherClass无法注册。在MyClass.MySecondString上引发System.MissingFieldException。

一切都是公开的,构建成功,甚至可以通过按 F12 (在Visual Studio中)导航到MySecondString。

什么可能导致此异常?

1 个答案:

答案 0 :(得分:0)

听起来您的缓存中加载了多个版本的 DLL。使用“gacutil -l”查看缓存中加载了多少版本。您可以使用“gacutil -u”删除所有版本。