有很多问题浮现在这个问题上,我已经完成了他们的工作,没有任何快乐。
我收到此错误:
来自程序集的'App.Web.WebConfig'类型中的方法'get_UserImageCDNUrl' 'App.Web,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null' 没有实施。
这真的很奇怪,因为我试图运行没有引用App.Web的Api.Web,它们唯一的共同点是对其他项目的引用(Models.Domain和Models.DTO)。
我有一个界面:
装配“Models.Domain”中的IResourceCompiler
我有一个抽象类,它在同一个程序集(Models.Domain)中实现这个接口,名为 WebConfigBase
在“App.Web”和“Api.Web”项目中,每个项目都有一个名为 WebConfig 的类,它继承自 WebConfigBase ,因此 WebConfig < / strong> App和Api中的类是 IResourceCompiler 的实现。
我尝试添加属性
string UserImageCDNUrl {get;}
到 IResourceCompiler 并将该属性添加到 WebConfigBase
public string UserImageCDNUrl
{
get { return ""; }
}
因此,通过他们自己的 WebConfig 类,Api和Web项目都可以访问该属性,并且我得到了上述异常。
我已经花了好几个小时试着看看为什么会发生这种情况并不高兴。
我已经清除了我的Obj文件夹,清理,重建,检查了GAC中的任何实例(没有任何实例),我仍然坚持这一点。
一切正常,直到我尝试向界面(和基类)添加新属性
答案 0 :(得分:2)
好的,如此奇怪地在Api.Web中添加对App.Web的引用并再次删除它已经解决了这个问题。
我不知道为什么,但确实如此。
我将App.Web的版本更改为1.0.0.1,错误仍然显示为1.0.0.0,这促使我这样做。
我希望有一个更合理的解释但是没有。这样一个令人愤怒的问题,我很高兴能够完成它。
祝其他任何体验过此事的人好运,我的想法和你在一起
答案 1 :(得分:1)
在很多情况下,我成了这个错误。 它似乎是缓存程序集,我在UserProfile中找到它们。
我的解决方案是:
希望它有所帮助。
答案 2 :(得分:1)
这可能有很多原因,所有以前的答案都代表了这个问题。
我建议做的是:
当你的程序正在运行时打开资源监视器 - &gt;在CPU选项卡和搜索句柄输入框中,搜索应该没有实现该方法的程序集。
在搜索结果中,您将看到装配的路径,并且您看到的路径很可能不是您所期望的路径。
从此意外路径中删除装配,以便正确的程序集被加载。
答案 3 :(得分:1)
出于记录目的,在我的情况下,这是由两个引用同一包的不同版本的项目引起的。至少解决这个问题可以解决问题。
答案 4 :(得分: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 ;
}
答案 5 :(得分:0)
I just remove the reference of current project (which is showing error) , and add again to other project in which project this was referenced build and it start working fine.
hope this help someone.
答案 6 :(得分:0)
我在Visual Studio 2017中看到了这个问题。
升级到Visual Studio 2019为我解决了这个问题。