public static void ConsoleMain() { if (Program.TypeName == null) { var types = Program.LoadedAssembly.GetTypes(); if (Program.FileName == "") { foreach (var type in types) { InstanceWriter.WriteToConsole(type); } } else if (Program.HTMLMode) { StringBuilder sb = new StringBuilder(); foreach (var type in types) { sb.AppendLine(InstanceWriter.GetHTMLText(type)); } InstanceWriter.WriteHTML(Program.FileName, Program.LoadedAssembly.FullName, sb.ToString()); System.Diagnostics.Process.Start(Program.FileName); } else { using (StreamWriter sw = new StreamWriter(Program.FileName)) { foreach (var type in types) { InstanceWriter.WriteToTextFile(sw, type); } } } } else { var type = Program.LoadedAssembly.GetType(Program.TypeName); if (type == null) { Console.WriteLine("ERROR 1001 : CAN'T LOAD " + Program.TypeName); return; } if (Program.FileName == "") { InstanceWriter.WriteToConsole(type); } else if (Program.HTMLMode) { InstanceWriter.WriteHTML(Program.FileName, type.Name, InstanceWriter.GetHTMLText(type)); System.Diagnostics.Process.Start(Program.FileName); } else { using (StreamWriter sw = new StreamWriter(Program.FileName)) { InstanceWriter.WriteToTextFile(sw, type); } } } }
static int Main(string[] args) { VisualMode = false; HTMLMode = false; FileName = ""; TypeName = null; if (args.Length == 0) { bool can_not_exit = true; while (can_not_exit) { Console.Write("ShavedIce_ClassViewer " + FileName + "$ "); string[] cmd = Console.ReadLine().SplitDoubleQuotation(); Console.WriteLine(cmd.ToStringAll(",")); if (cmd.Length == 0) { continue; } switch (cmd[0]) { case "writeconsole": case "print": { foreach (var type in LoadedAssembly.GetTypes()) { InstanceWriter.WriteToConsole(type); } } break; case "writefile": { if (cmd.Length == 2) { using (StreamWriter sw = new StreamWriter(cmd[1])) { foreach (var type in LoadedAssembly.GetTypes()) { InstanceWriter.WriteToTextFile(sw, type); } } } else { Console.WriteLine("ARG COUNT IS WRONG"); } } break; case "writehtml": { if (cmd.Length == 2) { StringBuilder sb = new StringBuilder(); foreach (var type in LoadedAssembly.GetTypes()) { sb.AppendLine(InstanceWriter.GetHTMLText(type)); } InstanceWriter.WriteHTML(cmd[1], LoadedAssembly.FullName, sb.ToString()); System.Diagnostics.Process.Start(cmd[1]); } else { Console.WriteLine("ARG COUNT IS WRONG"); } } break; case "load": { if (cmd.Length == 2) { try { LoadedAssembly = Assembly.LoadFile(cmd[1]); } catch (Exception e) { Console.WriteLine("CAN'T LOAD FILE\r\n" + e.ToString()); } } else { Console.WriteLine("ARG COUNT IS WRONG"); } } break; case "exit": { can_not_exit = false; } break; default: continue; } } return(0); } try { LoadedAssembly = Assembly.LoadFrom(args[0]); } catch (Exception e) { Console.WriteLine("ERROR 0002 : CAN'T LOAD ASSET FILE"); return(-1); } for (int i = 1; i < args.Length; i++) { switch (args[i]) { // Visual Mode case "-v": { VisualMode = true; } break; // Output File case "-f": { i++; if (i == args.Length) { Console.WriteLine("ERROR 0003 : FILE OUTPUT COMMAND IS WRONG"); return(-1); } else { FileName = args[i]; } } break; // Type Name case "-t": { i++; if (i == args.Length) { Console.WriteLine("ERROR 0004 : TYPE COMMAND IS WRONG"); return(-1); } else { TypeName = args[i]; } } break; // HTML case "-html": { HTMLMode = true; } break; default: { Console.WriteLine("ERROR 0005 : ARGS AREN'T EXIST"); } return(-1); } } if (VisualMode) { Application.Run(new VisualMode()); } else { ConsoleMode.ConsoleMain(); } return(0); }