2016-09-21 95 views
2

有很多问题在这个问题上浮动,我已经完成了它们而没有喜乐。System.TypeLoadException:方法'get_xxx'没有实现

我收到此错误:

Method 'get_UserImageCDNUrl' in type 'App.Web.WebConfig' from assembly 'App.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

这实在是奇怪,因为我试图运行Api.Web不具有参考App.Web,它们共有的唯一的事情是其他引用项目(Models.Domain和Models.DTO)。

我有一个接口:

IResourceCompiler在装配 “Models.Domain”

我有它实现在同一个组件这个接口称为WebConfigBase一个抽象类(Models.Domain)

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

,我打算给物业

string UserImageCDNUrl {get;} 

添加到IResourceCompiler,并添加属性为WebConfigBase

public string UserImageCDNUrl 
{ 
    get { return ""; } 
} 

因此其属性将通过两个阿比和Web项目访问他们的自己WebConfig类,我得到上述例外。

我已经找了好几个小时来尝试,看看为什么这种事情没有喜乐。

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

一切工作正常,直到我尝试新的属性添加到界面(和基类)

回答

2

OK,所以奇怪地在Api.Web中添加对App.Web的引用并再次将其删除已解决该问题。

我不知道为什么,但它。

我将App.Web的版本更改为1.0.0.1,错误仍然显示为1.0.0.0,这是促使我执行此操作的原因。

我希望有一个更合理的解释,但没有。这样一个令人愤怒的问题,我只是很高兴完成它。

祝您好运给别人谁遇到这种情况,我想到的是你

0

试试这个

public interface IResourceCompiler 
{ 
    string UserImageCDNUrl {get;} 
} 

public abstract class WebConfigBase : IResourceCompiler 
{ 
    public abstract string UserImageCDNUrl {get;} 
} 

public class WebConfig : WebConfigBase 
{ 
    public override string UserImageCDNUrl { return "whatever you want";} 
} 

或太:

public interface IResourceCompiler 
{ 
    string UserImageCDNUrl {get;} 
} 

public abstract class WebConfigBase : IResourceCompiler 
{ 
    public virtual string UserImageCDNUrl {get { return string.empty;}} 
} 

public class WebConfig : WebConfigBase 
{ 
    public override string UserImageCDNUrl { return "whatever you want";} // or return base.UserImageCDNUrl ; 
} 
+0

感谢您的回复,我尝试了您的建议(使用虚拟),但仍然没有快乐。同样的错误。在那里还有其他一些属性工作得很好,它只是导致问题的最新变化。就好像有一个缓存版本没有更新,但我不知道它在哪里! ggrr! – pieperu

+0

另一件令我困惑的事情是,当我运行Api.Web时发生错误,但错误是抱怨App.Web有问题。 Api.Web和App.Web甚至不知道彼此 – pieperu

0

在许多情况下,我成为了这个错误。 它看起来像缓存程序集,我在UserProfile中找到它们。

我的解决办法是:

  1. 保存解决方案并关闭Visual Studio的
  2. 删除整个文件夹 “C:\用户(用户)\应用程序数据\本地\微软\ VisualStudio的\ 14.0 \ ProjectAssemblies \”
  3. 启动Visual Studio
  4. 工作...

希望它能帮助。

相关问题