コード例 #1
0
        public void LoadData()
        {
            Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();

            foreach (Assembly assembly in assemblies)
            {
                AssemblyDataRow asseblyNode = new AssemblyDataRow()
                {
                    Name = assembly.GetName().Name
                };
                asseblyNode.Parent = asseblyNode; //ref it iteslf -> Root
                baseTreeList.Add(asseblyNode);
                //asseblyNode.Expanded = true;

                { //Level  2 namespaces
                    var namespaces = assembly.GetTypes()
                                     .Select(t => t.Namespace)
                                     .Distinct();

                    foreach (string namespaceName in namespaces)
                    {
                        if (string.IsNullOrEmpty(namespaceName))
                        {
                            continue;
                        }

                        AssemblyDataRow nsNode = new AssemblyDataRow()
                        {
                            Name   = namespaceName,
                            Parent = asseblyNode
                        };

                        baseTreeList.Add(nsNode);
                        //nsNode.Expanded = true;

                        { // Level 3 Types
                            foreach (Type type in assembly.GetTypes())
                            {
                                if (type.Namespace == namespaceName)
                                {
                                    AssemblyDataRow typeNode = new AssemblyDataRow()
                                    {
                                        Name   = type.Name,
                                        Parent = nsNode
                                    };

                                    baseTreeList.Add(typeNode);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
 public AssemblyDataRow(string name, AssemblyDataRow parent)
 {
     Name   = name;
     Parent = parent;
 }