コード例 #1
0
ファイル: CommandHandler.cs プロジェクト: xMeloe/Arclight
        private void InitialiseParameters(MethodInfo method)
        {
            foreach (Type parameterType in method.GetParameters()
                     .Skip(1)
                     .Select(p => p.ParameterType))
            {
                ICommandParameterConverter converter = CommandManager.Instance.GetConverter(parameterType);
                if (converter == null)
                {
                    throw new CommandException("");
                }

                additionalParameterConverters.Add(converter);
            }
        }
コード例 #2
0
ファイル: CommandManager.cs プロジェクト: xMeloe/Arclight
        private void InitialiseConverters()
        {
            foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()
                     .Where(t => typeof(ICommandParameterConverter).IsAssignableFrom(t)))
            {
                CommandParameterConverterAttribute attribute = type.GetCustomAttribute <CommandParameterConverterAttribute>();
                if (attribute == null)
                {
                    continue;
                }

                ICommandParameterConverter converter = (ICommandParameterConverter)Activator.CreateInstance(type);
                converters.Add(attribute.Type, converter);
            }
        }