将接口添加到分部类

Ian*_*ink 12 c# interface

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

public partial class CloudDataContext : IDataContext
{

}   
Run Code Online (Sandbox Code Playgroud)

在IDataContext具有单一的财产Users.

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

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

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

Mar*_*zek 19

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

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

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

public partial class Foo : IFoo
{

}
Run Code Online (Sandbox Code Playgroud)

这些属性可能在interface和中使用不同的类型class.

  • 事实证明,这是其中一个部分的名称空间中的拼写错误.一旦匹配,它就有效了. (5认同)
  • 就我而言,这是因为我生成的新部分类文件具有不同的类名。请记住更改类名以匹配另一个文件中的类名... (2认同)

Eri*_*sen 5

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

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

例子:

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