Are you able to define class-implementations in an interface?
For instance (pseudo-code alert!)...
interface IClass1
{
    String s { get; set; }
    // classes implementing this interface has to implement Class2 as "SubClass"
    Class2 SubClass;
}
interface IClass2
{
     Int32 i { get; set; }
}
class Class1 : IClass1
{
    String IClass1.s { get; set; }
    class IClass1.Class2 SubClass
    {
        Int32 IClass2.i { get; set; }
    }
}