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); }
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); }
public ClassHierarchyTreeView(Type typeRoot) { // Make sure PresentationCore is loaded. UIElement dummy = new UIElement(); // Put all the referenced assemblies in a List. List<Assembly> assemblies = new List<Assembly>(); // Get all referenced assemblies. AssemblyName[] anames = Assembly.GetExecutingAssembly().GetReferencedAssemblies(); // Add to assemblies list. foreach (AssemblyName aname in anames) assemblies.Add(Assembly.Load(aname)); // Store descendants of typeRoot in a sorted list. SortedList<string, Type> classes = new SortedList<string, Type>(); classes.Add(typeRoot.Name, typeRoot); // Get all the types in the assembly. foreach (Assembly assembly in assemblies) foreach (Type typ in assembly.GetTypes()) if (typ.IsPublic && typ.IsSubclassOf(typeRoot)) classes.Add(typ.Name, typ); // Create root item. TypeTreeViewItem item = new TypeTreeViewItem(typeRoot); Items.Add(item); // Call recursive method. CreateLinkedItems(item, classes); }
void CreateLinkedItems(TypeTreeViewItem itemBase, SortedList<string, Type> list) { foreach (KeyValuePair<string, Type> kvp in list) if (kvp.Value.BaseType == itemBase.Type) { TypeTreeViewItem item = new TypeTreeViewItem(kvp.Value); itemBase.Items.Add(item); CreateLinkedItems(item, list); } }
void CreateLinkedItems(TypeTreeViewItem itemBase, SortedList <string, Type> list) { foreach (KeyValuePair <string, Type> kvp in list) { if (kvp.Value.BaseType == itemBase.Type) { TypeTreeViewItem item = new TypeTreeViewItem(kvp.Value); itemBase.Items.Add(item); CreateLinkedItems(item, list); } } }
public ClassHierarchyTreeView(Type typeRoot) { // Make sure PresentationCore is loaded. UIElement dummy = new UIElement(); // Put all the referenced assemblies in a List. List <Assembly> assemblies = new List <Assembly>(); // Get all referenced assemblies. AssemblyName[] anames = Assembly.GetExecutingAssembly().GetReferencedAssemblies(); // Add to assemblies list. foreach (AssemblyName aname in anames) { assemblies.Add(Assembly.Load(aname)); } // Store descendants of typeRoot in a sorted list. SortedList <string, Type> classes = new SortedList <string, Type>(); classes.Add(typeRoot.Name, typeRoot); // Get all the types in the assembly. foreach (Assembly assembly in assemblies) { foreach (Type typ in assembly.GetTypes()) { if (typ.IsPublic && typ.IsSubclassOf(typeRoot)) { classes.Add(typ.Name, typ); } } } // Create root item. TypeTreeViewItem item = new TypeTreeViewItem(typeRoot); Items.Add(item); // Call recursive method. CreateLinkedItems(item, classes); }