コード例 #1
0
        static void Main(string[] args)
        {
            var path = Path.GetFullPath(args.Length > 0 ? args[0].Replace("\"", "") : "./ ");

            Console.Write($"Processing Assemblies under {path} ... ");
            _nephilaInstance = new Nephila(new ConsoleLogger(), path);

            Console.WriteLine("Done");
            ReadLine.AutoCompletionHandler = new AutoCompletionHandler();

            while (true)
            {
                var input = ReadLine.Read(_prompt);
                if (input.Equals("exit", StringComparison.CurrentCultureIgnoreCase))
                {
                    break;
                }

                var assemblyRefPairs = _nephilaInstance.GetReferencePairs(input);
                if (assemblyRefPairs.Count <= 0)
                {
                    Console.WriteLine($"No result for {input}.");
                    continue;
                }

                DrawAssemblyReferenceDiagram(assemblyRefPairs, input);
            }
        }
コード例 #2
0
        public static string NepilaMermaidOutput(this Nephila nephila, string assemblyFileName)
        {
            var pairs = nephila.GetReferencePairs(assemblyFileName);

            StringBuilder sb = new StringBuilder();

            foreach (var pair in pairs)
            {
                string assembly   = pair.Item1.String;
                string refferedBy = pair.Item2.String;

                sb.AppendLine($"{assembly.GetHashCode()}[\"{assembly}\"] --> {refferedBy.GetHashCode()}[\"{refferedBy}\"]");
                //sb.AppendLine($"\"{assembly}\" -> \"{refferedBy}\"");
            }

            return(sb.ToString());
        }