未在服务中实现接口成员
本文关键字:接口 成员 实现 服务 | 更新日期: 2023-09-27 17:55:36
首先,如果对这个问题的引用不正确,我深表歉意。
我正在开发一个三层MVC 3
应用程序。在业务层,我需要创建一个将调用数据访问层的服务,以便检索现有城镇的列表。
我的ITown
界面如下;
[ServiceContract]
public interface ITown
{
[OperationContract]
IEnumerable<Town> GetAllTowns();
}
在Town.svc.cs
中,我插入如下;
public class Town : ITown
{
public IEnumerable<Common.Town> GetAllTowns()
{
return new DATown().GetAllTowns();
}
}
问题出在上面的代码中。 我在类声明public class Town : ITown
的 Town
下收到错误。
'Business.Town' does not implement interface member 'Business.ITown.GetAllTowns()'.
'Business.Town.GetAllTowns()' cannot implement 'Business.ITown.GetAllTowns()'
because it does not have the matching return type of 'System.Collections.Generic.IEnumerable<Business.Town>'.
这是我DATown
中的内容;
public class DATown : Connection
{
//Constructor
public DATown()
:base()
{ }
public IEnumerable<Town> GetAllTowns()
{
return entities.Town.AsEnumerable();
}
}
所以基本上我正在做的是从Town.svc.cs
类调用DATown
的GetAllTowns()
方法。
我四处搜索了其他类似的查询;主要是说其中一个方法中有一个正确的参数。我不认为我的代码就是这种情况。
如果有人能帮助我找出问题所在,我将不胜感激。
提前谢谢。
在你的Town类中,你
有一个IEnumerable<Common.Town>
,在界面中你只是得到了IEnumerable<Town>
,但是在你的错误中,它表明接口正在使用Business.Town
而不是Common.Town
。问题是这些彼此并不相同。
如果你改变你的接口,所以IEnumerable也是Common.Town的,你应该没问题。
据我所知,您有一个不正确的返回类型 - 您在 Itown 中的城镇是 Bussiness.Town,而在服务类中,您返回 Common.Town。尝试返回 Bussiness.Town in svc