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; }
}
}