Adding an interface to a partial class

一曲冷凌霜 提交于 2019-12-18 13:02:24

问题


I have a class that is generated by a third party tool:

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

}

I create a partial class and then assign an interface so that I can inject this class later:

public partial class CloudDataContext : IDataContext
{

}   

The IDataContext has the single property Users.

This won't compile, the compiler complains that the interface isn't implemented.

If I move the interface to the generated class, it works fine. I can't do that though as it's generated code.

How can I apply an interface to a partial class to expose the class as defined above?


回答1:


The problem must be somewhere else, because you can implement interface in the other part of partial class then it's set on. I just tried following and it compiles just fine:

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

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

public partial class Foo : IFoo
{

}

The properties probably use different types in interface and class.




回答2:


Here's a quick checklist. Do the classes have identical:

  • Names?
  • Namespaces?
  • Access modifiers?

Example:

  • You decide to split an existing class into two files.
  • The original file's namespace doesn't match its folder path.
  • Consequently, the new class file you create has a mismatching namespace.
  • Build fails.


来源:https://stackoverflow.com/questions/20508279/adding-an-interface-to-a-partial-class

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!