c#接口方法不保存在.dll中,不是接口的成员
本文关键字:接口 成员 存在 方法 保存 dll | 更新日期: 2023-09-27 18:04:53
对于我放在接口中的方法,我一直收到一个"is not member of interface",见下面的代码:
public interface IDepartmentDataSource
{
IQueryable<Employee> Employees { get; }
IQueryable<Department> Departments { get; }
void Save();
}
然后我实现接口并像这样使用它,
void IDepartmentDataSource.Save()
{
SaveChanges();
}
这是我得到错误的时候,我可以看到Employees和Departments,但看不到save。当我去元数据的定义,我没有看到Void Save()在那里,但它是在我的接口文件。
谁来点灯,谢谢。
更新::这是我看到的,当我说导航到定义,即使我删除。dll和重建,我收到相同的东西。
#region Assembly eManager.Domain.dll, v1.0.0.0
// C:'PluralSight'eManager'eManager.Web'bin'eManager.Domain.dll
#endregion
using System.Linq;
namespace eManager.Domain
{
public interface IDepartmentDataSource
{
IQueryable<Department> Departments { get; }
IQueryable<Employee> Employees { get; }
}
}
尝试隐式实现该特性,而不是显式实现,否则只有在对象强制转换为IDepartmentDataSource时才会看到它:
public interface IDepartmentDataSource
{
IQueryable<Employee> Employees { get; }
IQueryable<Department> Departments { get; }
void Save();
}
public class TestClass : IDepartmentDataSource
{
public IQueryable<Employee> Employees
{
get { /* TODO: */}
}
public IQueryable<Department> Departments
{
get { /* TODO: */ }
}
public void Save()
{
//TODO:
}
}
在NSGaga的帮助下,我查看了我的配置和项目设置,很明显这不是代码问题,而是Visual Studio引用不同的.dll的问题。我对此的解决方案是快速而肮脏的方法,并且应该只用于让事情向前发展。被调用的.dll来自obj文件夹,由于任何给定的原因都不会更新,而且,它们是一些临时生成的文件。我只是删除了这些,因为我知道它们会在下次构建时生成,然后让它运行。
感谢你的洞察力NSGaga!