コード例 #1
0
        static void Main(string[] args)
        {
            var allCommands  = TypeHelper.GetAllTypesInheritedFromType <ICommand>().Where(x => x.IsClass);
            var allExecutors = TypeHelper.GetAllTypesInheritedFromType <IExecutor>().Where(x => x.IsClass);
            var commandMap   = allCommands.ToDictionary(k => k.Name.Replace("Command", string.Empty).ToLower(), v => v);
            var executorMap  = allExecutors.ToDictionary(k => k.Name.Replace("Executor", string.Empty).ToLower(), v => (IExecutor)Activator.CreateInstance(v));

            if (!ConfigHelper.CheckOrCreate("config.json"))
            {
                Console.WriteLine("Could not open or create config.json");
                return;
            }

            var commandMapper = new CommandMapper();

            if (args.Length == 0)
            {
                args = new[] { "help" };
            }

            var commandType = commandMap[args[0].ToLower()];
            var executor    = executorMap[args[0].ToLower()];

            var command = commandMapper.MapCommand(commandType, args.SubArray(1));

            executor.Execute(command);
        }