Search code examples
c#interface

Adding an interface to a partial class


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?


Solution

  • The problem must be somewhere else, because you can implement interface in the other part of partial class than 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.