public static void Main(string[] args) { // Grab the Assembly from a known type Assembly asm = typeof(GAME_TAG).Assembly; // Default type names when none are passed args = args.Length == 0 ? new [] { "GAME_TAG", "TAG_ZONE" } : args; // Convert command-line arguments to array of types Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject( args.ToDictionary(type => asm.GetType(type).Name, type => EnumExtensions.EnumToDictionary(asm.GetType(type))) , Newtonsoft.Json.Formatting.Indented)); }