gpt4 book ai didi

C# 接口(interface)方法不保存在 .dll 中,不是接口(interface)的成员

转载 作者:太空狗 更新时间:2023-10-30 00:52:01 25 4
gpt4 key购买 nike

对于我放在接口(interface)中的方法,我一直收到“不是接口(interface)成员”的消息,请参见下面的代码:

public interface IDepartmentDataSource
{
IQueryable<Employee> Employees { get; }
IQueryable<Department> Departments { get; }
void Save();
}

然后我实现了接口(interface),就这样使用了,

    void IDepartmentDataSource.Save()
{
SaveChanges();
}

这是当我收到错误时,我可以看到员工和部门,但看不到保存。当我转到定义的元数据时,我也没有在其中看到 Void Save(),但它在我的接口(interface)文件中。

谁能给点启发,谢谢。

更新:这就是我说导航到定义时看到的内容,即使我删除 .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:
}
}

关于C# 接口(interface)方法不保存在 .dll 中,不是接口(interface)的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23832362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com