我有一个由第三方工具生成的课程:
public partial class CloudDataContext : DbContext
{
// ...SNIPPED...
public DbSet<User> Users { get; set; }
}
我创建了一个分部类,然后分配一个接口,以便我可以在以后注入这个类:
public partial class CloudDataContext : IDataContext
{
}
IDataContext
具有单一属性Users
。
这不会编译,编译器会抱怨接口没有实现。
如果我将界面移动到生成的类,它可以正常工作。因为它是生成的代码,所以我不能这样做。
如何将接口应用于partial类以公开上面定义的类?
答案 0 :(得分:16)
问题必须在其他地方,因为你可以在partial
类的其他部分实现接口,然后在上设置。我只是尝试了以下它编译得很好:
public interface IFoo
{
int Bar { get; set; }
}
public partial class Foo
{
public int Bar { get; set; }
}
public partial class Foo : IFoo
{
}
属性可能在interface
和class
中使用不同的类型。
答案 1 :(得分:1)
这是一个快速检查清单。这些类是否相同:
示例:
答案 2 :(得分:0)
在我的案例中,问题是在部分类的其他部分中实现的接口方法未编译,并且C#给出了未实现方法的错误
答案 3 :(得分:0)
就我而言,接口方法签名没有提到实际方法预期的值(uint 方向)。这显示为接口在部分类之一中存在错误。确保方法的接口实际上与方法签名本身相同。哦。