将接口添加到分部类

时间:2013-12-11 00:31:53

标签: c# interface

我有一个由第三方工具生成的课程:

public partial class CloudDataContext : DbContext 
{
    // ...SNIPPED... 
    public DbSet<User> Users { get; set; } 

}

我创建了一个分部类,然后分配一个接口,以便我可以在以后注入这个类:

public partial class CloudDataContext : IDataContext
{

}   

IDataContext具有单一属性Users

这不会编译,编译器会抱怨接口没有实现。

如果我将界面移动到生成的类,它可以正常工作。因为它是生成的代码,所以我不能这样做。

如何将接口应用于partial类以公开上面定义的类?

4 个答案:

答案 0 :(得分:16)

问题必须在其他地方,因为你可以在partial类的其他部分实现接口,然后在上设置。我只是尝试了以下它编译得很好:

public interface IFoo
{
    int Bar { get; set; }
}

public partial class Foo
{
    public int Bar { get; set; }
}

public partial class Foo : IFoo
{

}

属性可能在interfaceclass中使用不同的类型。

答案 1 :(得分:1)

这是一个快速检查清单。这些类是否相同:

  • 名字?
  • 命名空间?
  • 访问修饰符?

示例:

  • 您决定将现有的类分为两个文件。
  • 原始文件的名称空间与文件夹路径不匹配。
  • 因此,您创建的新类文件的名称空间不匹配。
  • 构建失败。

答案 2 :(得分:0)

在我的案例中,问题是在部分类的其他部分中实现的接口方法未编译,并且C#给出了未实现方法的错误

答案 3 :(得分:0)

就我而言,接口方法签名没有提到实际方法预期的值(uint 方向)。这显示为接口在部分类之一中存在错误。确保方法的接口实际上与方法签名本身相同。哦。