系统.get_xxx'没有实现

本文关键字:实现 get xxx 系统 | 更新日期: 2023-09-27 18:08:09

关于这个问题有很多问题,我已经解决了所有的问题,没有乐趣。

我收到这个错误:

方法'get_UserImageCDNUrl'在类型'App.Web。WebConfig'从程序集"App.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"没有实现

这是真的很奇怪,因为我试图运行Api。Web没有引用App.Web,它们唯一的共同点是引用其他项目(模型)。域与模型。dto).

我有一个接口:

IResourceCompiler域"

我有一个抽象类,它在相同的程序集(Models.Domain)中实现了这个接口,称为WebConfigBase

在"App.Web"answers"Api. web "它们都有一个名为WebConfig的类,该类继承了WebConfigBase,因此App和Api中的WebConfig类都是IResourceCompiler的实现。

我试图添加一个属性

string UserImageCDNUrl {get;}

IResourceCompiler并添加属性到WebConfigBase

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

所以Api和Web项目都可以通过它们自己的WebConfig类访问该属性,我得到了上面的异常。

我已经找了好几个小时,试图弄清楚为什么这种情况发生得很不愉快。

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

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

系统.get_xxx'没有实现

好的,所以奇怪地在Api中添加了对App.Web的引用。Web和删除它已经解决了这个问题。

我不知道为什么,但它确实发生了。

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

我希望有一个更合理的解释,但是没有。这样一个令人恼火的问题,我很高兴能解决它。

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

对于记录,在我的案例中,这是由两个项目引用同一包的不同版本引起的。至少解决了这个问题。

可能有很多原因,前面的所有答案都代表了这个问题的一种情况。

我的建议是:
当你的程序运行时,打开资源监视器-> CPU选项卡,在搜索句柄输入框中,搜索可能没有实现该方法的程序集。

在搜索结果中,您将看到程序集的路径,并且您看到的路径很可能不是您期望的路径。
从此意外路径中删除程序集,以便加载正确的程序集。

在很多情况下我变成了这个错误。似乎是缓存程序集,我在UserProfile中找到了它们。

我的解决方案是:

  1. 保存解决方案并关闭Visual Studio
  2. 删除整个文件夹"c:'Users(user)'AppData'Local'Microsoft'VisualStudio'14.0'ProjectAssemblies'"
  3. 启动Visual Studio
  4. 工作…

希望能有所帮助。

我只是删除了当前项目的引用(显示错误),并再次添加到其他项目中,该项目被引用构建,并开始正常工作。

希望这对某人有所帮助。

try this

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 ;
}

我在Visual Studio 2017中看到这个问题。

升级到visual studio 2019为我解决了这个问题