Пример #1
0
        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 <>)
            }));
        }
Пример #2
0
        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());
        }