2013-03-01 165 views
2

我在我的WPF应用程序收到以下错误:System.TypeLoadException

Declaration referenced in a method implementation cannot be a final method. 

,我发现指出的问题是一个非虚方法是被重写的唯一的事情,但我查在我的对象中找不到任何东西。

编译时不会引发错误,但仅在调试时引发。

有没有人有一个建议,我可以尝试?

- UPDATE

我打电话时得到的错误在我App.Xaml.cs OnStartup覆盖:

var catalog = new AggregateCatalog(); 
catalog.Catalogs.Add(new DirectoryCatalog(localDir)); 
_container = new CompositionContainer(catalog); 

在_container我升级到4.5.10 CSLA后收到15 LoaderException。

+0

看起来像一代类型发生在你的或第三方代码的某处。您是否使用任何需要代理类型生成的IoC或DI容器,ORM框架? – Dennis 2013-03-01 10:28:02

+0

我正在使用MEF。 – 2013-03-01 10:43:21

+0

以及.net framework 4.5的CSLA。 – 2013-03-01 10:51:48

回答

8

好的,我找到了我的问题。我希望在这里张贴可能会帮助其他人发现我一直在寻找的问题。

在上面贴出的代码中,localDir指向我的本地机器上的一个目录,在该目录中,项目被构建到该目录,然后用MEF提取。我在这里的问题是,有一个.dll到一个不同的项目,仍然参考旧版本的CSLA,并有Save(),仍然被覆盖,虽然它不允许annymore。

所以简而言之,它是我的MEF目录中的一个.dll不匹配,所以一定要检查这样的事情。

希望这可以帮助别人!

0

这发生在我身上,我正在运行我的测试并得到相同的错误信息。

问题是我在其中一个项目和测试项目中有一个更新的nuget软件包,nuget软件包已过时并因此生成此问题。

更新所有项目中的软件包可解决问题。

相关问题