public void FilteredScopeFactoryOfTM_ShouldSucceed()
        {
            var c1 = new TypeCatalog(typeof(ClassRoot), typeof(ClassA));
            var c2 = new TypeCatalog(typeof(ClassA), typeof(ClassB), typeof(ClassC));
            var c3 = new TypeCatalog(typeof(ClassA), typeof(ClassB), typeof(ClassC));
            var c4 = new TypeCatalog(typeof(ClassA), typeof(ClassB), typeof(ClassC));
            var sd = c1.AsScope(c2.AsScopeWithPublicSurface <ClassA>(),
                                c3.AsScopeWithPublicSurface <ClassB>(),
                                c4.AsScopeWithPublicSurface <ClassC>());

            var container = new CompositionContainer(sd);

            var fromRoot = container.GetExportedValue <ClassRoot>();
            var a        = fromRoot.classA.CreateExport().Value;
            var b        = fromRoot.classB.CreateExport().Value;
            var c        = fromRoot.classC.CreateExport().Value;
        }