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