System.TypeLoadException: Method 'get_xxx' does not have an implementation

pieperu picture pieperu · Sep 21, 2016 · Viewed 19.8k times · Source

There are a lot of questions floating around with this problem and i've worked through them ll with no joy.

I am receiving this error:

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.

Which is really strange because I am trying to run Api.Web which has no reference to App.Web, the only thing they have in common are references to other projects (Models.Domain and Models.DTO).

I have an interface:

IResourceCompiler in an assembly "Models.Domain"

I have an abstract class which implements this interface in the same assembly (Models.Domain) called WebConfigBase

In the "App.Web" and "Api.Web" projects they each have a class called WebConfig which inherit from WebConfigBase, therefore both WebConfig classes in App and Api are implementations of IResourceCompiler.

I tried to add a property

string UserImageCDNUrl {get;}

to IResourceCompiler and added the property to WebConfigBase

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

so the property would be accessible to both Api and Web projects through their own WebConfig classes, and i get the exception above.

I have looked for hours to try and see why this happens with no joy.

I've cleared my Obj folders, cleaned, rebuilt, checked for any instances in GAC (there aren't any) and i'm still stuck on this.

Everything works fine until i try to add a new property to the interface (and base class)

Answer

pieperu picture pieperu · Sep 21, 2016

OK, so bizarrely adding a reference to App.Web in Api.Web and removing it again has solved the issue.

I have no idea why, but it did.

I changed the version of App.Web to 1.0.0.1 and the error was still showing 1.0.0.0, which is what prompted me to do it.

I wish there was a more reasonable explanation but there isn't. Such an infuriating issue i'm just glad to be done with it.

Best of luck to anyone else who experiences this, my thought's are with you