コード例 #1
0
        /// <summary>
        /// Run analysis and display data from it
        /// </summary>
        private void walkAndShowCollectedData(List <string> a)
        {
            Cursor.Current = Cursors.WaitCursor;

            this.Text = "DependencyWalker.Net - [" + String.Join(",", a.Select(x => Path.GetFileName(x)).ToArray()) + "]";

            if (w != null)
            {
                w.Dispose();
                w = null;
            }

            GC.Collect();
            GC.WaitForPendingFinalizers();

            w            = new Walker(a);
            w.parent     = this;
            w.includeGAC = cbShowGac.Checked;
            w.runIt();

            tssLoadedInfo.Text = (w.refass.Count + w.listOfFilenames2Check.Count) + " modules/" + w.type2ass.Count + " types";

            this.listOfTypes = w.type2ass.Keys.ToList();
            this.listOfTypes.Sort();
            this.searchTypeTxt_TextChanged(this, null);

            if (w.refass.Count > 0)
            {
                if (!tcMain.TabPages.Contains(tpListOfReferences))
                {
                    tcMain.TabPages.Add(tpListOfReferences);
                }

                tbUsedBy.Text = "";
                this.tbListOfReferences.Text = "";
                foreach (string s in w.refass.Keys)
                {
                    this.tbListOfReferences.Text += s + "\r\n";
                }

                this.tbListOfReferences.Text += "\r\n\r\n\r\n";
                foreach (string s in w.refass2filename.Keys)
                {
                    this.tbListOfReferences.Text += (new Uri(w.refass2filename[s])).AbsolutePath
                                                    + "\r\n";
                }
            }
            else
            {
                tcMain.TabPages.Remove(tpListOfReferences);
            }

            if (w.errors.Count > 0)
            {
                if (!tcMain.TabPages.Contains(tpErrors))
                {
                    tcMain.TabPages.Add(tpErrors);
                }

                tbErrors.Text = "";
                foreach (string s in w.errors.Values)
                {
                    tbErrors.Text += "\r\n\r\n" + s;
                }
            }
            else
            {
                tcMain.TabPages.Remove(tpErrors);
            }

            Cursor.Current = Cursors.Default;
        }