Petzold.ShowClassHierarchy.ClassHierarchyTreeView.ClassHierarchyTreeView C# (CSharp) Method

ClassHierarchyTreeView() public method

public ClassHierarchyTreeView ( Type typeRoot ) : System
typeRoot System.Type
return System
        public ClassHierarchyTreeView(Type typeRoot)
        {
            UIElement dummy = new UIElement();
            List<Assembly> assemblies = new List<Assembly>();

            AssemblyName[] anames = Assembly.GetExecutingAssembly().GetReferencedAssemblies();
            foreach (AssemblyName aname in anames)
            {
                assemblies.Add(Assembly.Load(aname));
            }

            SortedList<string, Type> classes = new SortedList<string, Type>();
            foreach (Assembly assembly in assemblies)
            {
                foreach (Type typ in assembly.GetTypes())
                {
                    if (typ.IsPublic && typ.IsSubclassOf(typeRoot))
                    {
                        classes.Add(typ.Name, typ);
                    }
                }
            }

            TypeTreeViewItem item = new TypeTreeViewItem(typeRoot);
            Items.Add(item);

            CreateLinkedItems(item, classes);
        }