Allen.Util.CSharpRefTree.Program.Deal C# (CSharp) Метод

Deal() публичный статический Метод

深度优先探测环
public static Deal ( PrjInfo prjInfo, Stack path ) : PrjInfo
prjInfo PrjInfo
path Stack
Результат PrjInfo
        public static PrjInfo Deal(PrjInfo prjInfo, Stack<PrjInfo> path)
        {
            foreach (var refAssembly in prjInfo.PrjRef.Where(item => (!root.Contains(item))))
            {

                if (path.Contains(refAssembly))
                {
                    //发现环
                    Console.Write(refAssembly.AssemblyName + "<-");
                    while (path.Peek() != refAssembly)
                    {
                        Console.Write(path.Pop().AssemblyName + "<-");
                    }
                    Console.Write(refAssembly.AssemblyName + "\t Resolve it?[Y/n]\n");
                    //var decide = Console.ReadLine();
                    //if (decide == "Y")
                    //{
                    //root.Add(refAssembly);
                    //prjInfoDic.Remove(refAssembly.AssemblyName);
                    return refAssembly;
                    //}
                }
                path.Push(refAssembly);
                var dealedPrj = Deal(refAssembly, path);
                if (dealedPrj != null) return dealedPrj;
                path.Pop();

            }
            return null;
        }
        private static void RebuildRef()