System.TypeLoadException:方法“ get_xxx”没有实现

pie*_*eru 5 c# typeloadexception interface

关于这个问题有很多问题,我一直很高兴地通过它们解决。

我收到此错误:

程序集“ App.Web,版本= 1.0.0.0,区域性=中性,PublicKeyToken = null”中的类型“ App.Web.WebConfig”中的方法“ get_UserImageCDNUNU”没有实现。

这真的很奇怪,因为我试图运行没有引用App.Web的Api.Web,它们唯一的共同点是引用了其他项目(Models.Domain和Models.DTO)。

我有一个界面:

程序集“ Models.Domain”中的IResourceCompiler

我有一个抽象类,该抽象类在称为WebConfigBase的同一程序集(Models.Domain)中实现此接口。

在“ App.Web”和“ Api.Web”项目中,每个项目都有一个名为WebConfig的类,该类继承自WebConfigBase,因此App和Api中的WebConfig类都是IResourceCompiler的实现。

我试图添加一个属性

string UserImageCDNUrl {get;}
Run Code Online (Sandbox Code Playgroud)

IResourceCompiler并将属性添加到WebConfigBase

public string UserImageCDNUrl 
{
    get { return ""; } 
}
Run Code Online (Sandbox Code Playgroud)

因此,Api和Web项目都可以通过其自己的WebConfig类访问该属性,而我在上面得到了例外。

我已经花了几个小时尝试,看看为什么这种情况没有喜悦。

我已经清除了我的Obj文件夹,进行了清理,重建,检查了GAC中的任何实例(没有实例),但我仍然坚持这样做。

一切正常,直到我尝试向接口(和基类)添加新属性

pie*_*eru 7

好的,奇怪的是,在 Api.Web 中添加对 App.Web 的引用并再次删除它已经解决了这个问题。

我不知道为什么,但确实如此。

我将 App.Web 的版本更改为 1.0.0.1 并且错误仍然显示 1.0.0.0,这就是促使我这样做的原因。

我希望有一个更合理的解释,但没有。这么令人气愤的问题,我很高兴能解决它。

祝遇到这种情况的其他人好运,我的想法与你同在


小智 5

根据记录,就我而言,这是由两个项目引用同一包的不同版本引起的。至少解决这个问题可以解决问题。