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

c#接口方法不保存在.dll中,不是接口的成员

尝试隐式实现该特性,而不是显式实现,否则只有在对象强制转换为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!