public void name() { Type[] types = typeof(InheritanceHierarchyFilterTest).GetNestedTypes(BindingFlags.NonPublic); InheritanceHierarchyFilter typeFilter = new InheritanceHierarchyFilter(types); Assert.That( typeFilter.GetLeafTypes(), Is.EqualTo( new Type[] { typeof(Leaf111Class), typeof(Leaf112Class), typeof(Leaf211Class), typeof(Leaf221Class), typeof(Leaf31Class), typeof(Leaf32Class <>) })); }
public ClassDefinition[] CreateClassDefinitionCollection(IEnumerable <Type> types) { ArgumentUtility.CheckNotNull("types", types); var inheritanceHierarchyFilter = new InheritanceHierarchyFilter(types.ToArray()); var leafTypes = inheritanceHierarchyFilter.GetLeafTypes(); var classDefinitions = new Dictionary <Type, ClassDefinition>(); foreach (var type in leafTypes) { GetClassDefinition(classDefinitions, type); } SetDerivedClasses(classDefinitions.Values); return(classDefinitions.Values.ToArray()); }