-/**
- * Namespace: System.Web
- * Class: EnumCheck
- *
- * Author: Gaurav Vaish
- * Contact: <gvaish@iitk.ac.in>
- * Status: 100%
- *
- * (C) Gaurav Vaish (2002)
- */
-
-using System;
-using System.Reflection;
-
-namespace Mono.Enumerations
-{
- public class EnumCheck
- {
- private string className;
- private Type type;
-
- private static readonly string[] assemblies = {
- "mscorlib",
- "System",
- "System.Drawing",
- "System.Web",
- "System.Security",
- "System.Windows.Forms",
- "System.XML",
- "System.Data",
- "System.Design",
- "System.Enterpriseservices",
- "System.Management",
- "System.Messaging",
- "System.Runtime.Remoting",
- "System.ServiceProcess",
- "System.Web.RegularExpressions",
- "System.Web.Services"
- };
-
- public EnumCheck(string className)
- {
- this.className = className;
- }
-
- public void Display()
- {
- LoadType();
- if(type == null || !type.IsEnum)
- {
- System.Console.Write("-->Failed to load the enumeration: " + className);
- return;
- }
- Array ar = Enum.GetValues(type);
- System.Console.WriteLine("-->Enumeration: {0}", type.ToString());
- for(int i=0; i < ar.Length; i++)
- {
- Enum b = (Enum)ar.GetValue(i);
- System.Console.Write(" {0}", Enum.Format(type, b, "G"));
- System.Console.WriteLine(" ({0}) ", Enum.Format(type, b, "D"));
- }
- }
-
- private void LoadType()
- {
- type = null;
- foreach(string assemblyName in assemblies)
- {
- try
- {
- Assembly assembly = Assembly.Load(assemblyName + ".dll");
- foreach(Type t in assembly.GetTypes())
- {
- if(!t.IsEnum)
- continue;
- string name = null;
- if(Type.GetType(className + "," + assemblyName) != null)
- name = Type.GetType(className + "," + assemblyName).ToString();
- if(name == t.ToString())
- {
- type = t;
- break;
- }
- }
- } catch(BadImageFormatException)
- {
- } catch(ReflectionTypeLoadException)
- {
- } catch(ArgumentException)
- {
- }
- if(type != null)
- return;
- }
- }
-
- public static void PrintUsage()
- {
- System.Console.WriteLine("Usage:");
- System.Console.WriteLine("EnumCheck [<enum> [<enum> [... ] ] ]");
- System.Console.WriteLine("");
- System.Console.WriteLine("enum := <namespace>[.<subnamespace>[...]].enum_name");
- System.Console.WriteLine("");
- }
-
- public static void Main(string[] args)
- {
- if(args.Length > 0 && (args[0] == "--help" || args[0] == "-h"))
- {
- PrintUsage();
- return;
- }
- EnumCheck check = null;
- if(args.Length != 0)
- {
- foreach(string clName in args)
- {
- check = new EnumCheck(clName);
- check.Display();
- System.Console.WriteLine("\n");
- }
- }
- while(true)
- {
- System.Console.Write("Enter the name of the Enumeration (end to stop): ");
- string clName = System.Console.ReadLine();
- if(clName == "stop" || clName.Length == 0)
- break;
- check = new EnumCheck(clName);
- check.Display();
- System.Console.WriteLine("\n");
- }
- }
- }
-}
+/**\r
+ * Namespace: System.Web\r
+ * Class: EnumCheck\r
+ *\r
+ * Author: Gaurav Vaish\r
+ * Contact: <gvaish@iitk.ac.in>\r
+ * Status: 100%\r
+ *\r
+ * (C) Gaurav Vaish (2002)\r
+ */\r
+\r
+using System;\r
+using System.Xml;\r
+using System.Collections;\r
+using System.Reflection;\r
+\r
+namespace Mono.Enumerations\r
+{\r
+ public class EnumCheck\r
+ {\r
+ private string className;\r
+ private Type type;\r
+ private EnumCheckAssemblyCollection ecac = new EnumCheckAssemblyCollection();\r
+ \r
+ public static string confFile = "assemblies.xml";\r
+\r
+ public EnumCheck(string className)\r
+ {\r
+ this.className = className;\r
+ ecac.Parse();\r
+ }\r
+\r
+ public void Display()\r
+ {\r
+ ecac.ConfigFile = confFile;\r
+ LoadType();\r
+ if(type == null || !type.IsEnum)\r
+ {\r
+ System.Console.Write("-->Failed to load the enumeration: " + className);\r
+ return;\r
+ }\r
+ Array ar = Enum.GetValues(type);\r
+ System.Console.WriteLine("-->Enumeration: {0}", type.ToString());\r
+ for(int i=0; i < ar.Length; i++)\r
+ {\r
+ Enum b = (Enum)ar.GetValue(i);\r
+ System.Console.Write(" {0}", Enum.Format(type, b, "G"));\r
+ System.Console.WriteLine(" ({0}) ", Enum.Format(type, b, "D"));\r
+ }\r
+ }\r
+\r
+ private void LoadType()\r
+ {\r
+ type = null;\r
+ foreach(string url in ecac)\r
+ {\r
+ try\r
+ {\r
+ Assembly assembly = Assembly.LoadFrom(url);\r
+ foreach(Type t in assembly.GetTypes())\r
+ {\r
+ if(!t.IsEnum)\r
+ continue;\r
+ if(className == t.ToString())\r
+ {\r
+ type = t;\r
+ break;\r
+ }\r
+ }\r
+ } catch(BadImageFormatException)\r
+ {\r
+ } catch(ReflectionTypeLoadException)\r
+ {\r
+ } catch(ArgumentException)\r
+ {\r
+ }\r
+ if(type != null)\r
+ return;\r
+ }\r
+ }\r
+\r
+ public static void PrintUsage()\r
+ {\r
+ System.Console.WriteLine("Usage:");\r
+ System.Console.WriteLine("EnumCheck [<enum> [<enum> [... ] ] ]");\r
+ System.Console.WriteLine("");\r
+ System.Console.WriteLine("enum := <namespace>[.<subnamespace>[...]].enum_name");\r
+ System.Console.WriteLine("");\r
+ }\r
+\r
+ public static void Main(string[] args)\r
+ {\r
+ if(args.Length > 0 && (args[0] == "--help" || args[0] == "-h"))\r
+ {\r
+ PrintUsage();\r
+ return;\r
+ }\r
+ EnumCheck check = null;\r
+ string bdir;\r
+ System.Console.Write("Enter assembly configuration file [{0}]:", confFile);\r
+ //System.Console.Write("[{0}]: ", confFile);\r
+ bdir = System.Console.ReadLine();\r
+ while(bdir.EndsWith("/") || bdir.EndsWith("\\"))\r
+ {\r
+ bdir = bdir.Substring(0, bdir.Length - 1);\r
+ }\r
+ if(bdir != "")\r
+ {\r
+ confFile = bdir;\r
+ }\r
+ if(args.Length != 0)\r
+ {\r
+ foreach(string clName in args)\r
+ {\r
+ check = new EnumCheck(clName);\r
+ check.Display();\r
+ System.Console.WriteLine("\n");\r
+ }\r
+ }\r
+ while(true)\r
+ {\r
+ System.Console.Write("Enter the name of the Enumeration (end to stop): ");\r
+ string clName = System.Console.ReadLine();\r
+ if(clName == "stop" || clName == "end" || clName.Length == 0)\r
+ break;\r
+ check = new EnumCheck(clName);\r
+ check.Display();\r
+ System.Console.WriteLine("\n");\r
+ }\r
+ }\r
+ }\r
+}\r