2016-09-21 143 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. 工作...

希望它能幫助。

相關問題