2 * Namespace: System.Web
6 * Contact: <gvaish@iitk.ac.in>
9 * (C) Gaurav Vaish (2002)
13 using System.Reflection;
15 namespace Mono.Enumerations
17 public class EnumCheck
19 private string className;
22 private static readonly string[] assemblies = {
28 "System.Windows.Forms",
32 "System.Enterpriseservices",
35 "System.Runtime.Remoting",
36 "System.ServiceProcess",
37 "System.Web.RegularExpressions",
41 public EnumCheck(string className)
43 this.className = className;
49 if(type == null || !type.IsEnum)
51 System.Console.Write("-->Failed to load the enumeration: " + className);
54 Array ar = Enum.GetValues(type);
55 System.Console.WriteLine("-->Enumeration: {0}", type.ToString());
56 for(int i=0; i < ar.Length; i++)
58 Enum b = (Enum)ar.GetValue(i);
59 System.Console.Write(" {0}", Enum.Format(type, b, "G"));
60 System.Console.WriteLine(" ({0}) ", Enum.Format(type, b, "D"));
64 private void LoadType()
67 foreach(string assemblyName in assemblies)
71 Assembly assembly = Assembly.Load(assemblyName + ".dll");
72 foreach(Type t in assembly.GetTypes())
77 if(Type.GetType(className + "," + assemblyName) != null)
78 name = Type.GetType(className + "," + assemblyName).ToString();
79 if(name == t.ToString())
85 } catch(BadImageFormatException)
87 } catch(ReflectionTypeLoadException)
89 } catch(ArgumentException)
97 public static void PrintUsage()
99 System.Console.WriteLine("Usage:");
100 System.Console.WriteLine("EnumCheck [<enum> [<enum> [... ] ] ]");
101 System.Console.WriteLine("");
102 System.Console.WriteLine("enum := <namespace>[.<subnamespace>[...]].enum_name");
103 System.Console.WriteLine("");
106 public static void Main(string[] args)
108 if(args.Length > 0 && (args[0] == "--help" || args[0] == "-h"))
113 EnumCheck check = null;
116 foreach(string clName in args)
118 check = new EnumCheck(clName);
120 System.Console.WriteLine("\n");
125 System.Console.Write("Enter the name of the Enumeration (end to stop): ");
126 string clName = System.Console.ReadLine();
127 if(clName == "stop" || clName.Length == 0)
129 check = new EnumCheck(clName);
131 System.Console.WriteLine("\n");