バックグラウンド:
この質問を正確に表現する方法がわからないので、これは私が達成しようとしていることの例です:
public interface IEverythingVM : IA, IB
{
    MyTypeA {get;}
    MyTypeB {get;}
    MyTypeC {get;}
    MyTypeD {get;}
    MyTypeE {get;}
    MyTypeF {get;}
}
public class EverythingVM : IEverythingVM
{
    // Populate everything from MyTypeA to MyTypeF
}
public interface IA
{
    MyTypeA {get;}
    MyTypeB {get;}
    MyTypeC {get;}
}
public interface IB
{
    MyTypeD {get;}
    MyTypeE {get;}
    MyTypeF {get;}
}
実現:
私は次のようなことができるという印象を受けましたが、それを書き出すと、なぜそれがうまくいかないのかがはっきりとわかります.ばかげているので、私は大声で笑い声を上げたいと思います。
{
    IA varIA = new EverythingVM(param1, param2);
    IB varIB = new EverythingVM(param1, param2);
    var cm = new ComparisonManager(varIA, varIB);        
}
public class ComparisonManager
{
    public ComparisonManager(IEverythingVM varEIA, IEverythingVM varEIB)
    {
        // be able to acces MyTypeA, MyTypeB & MyTypeC from varEIA
        // be able to acces MyTypeD, MyTypeE & MyTypeF from varEIB
    }
}
質問:
最終的に私が達成しようとしているのは、場合によっては で利用MyTypeA可能になり、別の場合では で利用できるようになることです。現在の構造を考えると、これを達成する方法はありますか?MyTypeBMyTypeCComparisonManagerMyTypeDMyTypeEMyTypeFComparisonManager