/// <summary>Initializes a new instance of the <see cref="Namespace"/> class.</summary> /// <param name="assembly">The assembly.</param> /// <param name="name">The name of the namespace.</param> public Namespace(AssemblyItem assembly, string name) { this.Parent = assembly; this.Name = name; this.types = new List<Type>(); }
public TreeNode LoadAssembly(Assembly asm, CancellationToken cancelToken) { AssemblyItem asmItem = new AssemblyItem(asm); bool first = this.Nodes.Count == 0; TreeNode node = this.FindNode((n) => { return n.Node.GetInfo() != null && n.Node.GetInfo().GetAnalysisObject<AssemblyItem>() == asmItem; }, 2); if (node != null) { return node; } node = this.NewNode(asmItem, NodeType.Assembly, false); Action<CancellationToken> addNodes = (ct) => { TreeNode[] nodes = this.CreateSubNodes(node.GetInfo(), ct); if (!ct.IsCancellationRequested) { Action add = () => { node.Nodes.AddRange(nodes); node.Expand(); }; if (node.TreeView != null) { node.TreeView.InvokeIfRequired(add); } else { add(); } } }; if (JobGroup.Current != Job.Analysis) { Job.Analysis.NewJob(this, addNodes) .Execute() .Wait(); } else { addNodes(cancelToken); } return node; }