示例#1
0
        private void lookupForArguments()
        {
            List <IMacroTriggerArgument> arguments = new List <IMacroTriggerArgument>();

            Type[] nestedTypes = GetType().GetNestedTypes();
            foreach (Type nestedType in nestedTypes)
            {
                if (typeof(IMacroTriggerArgument).IsAssignableFrom(nestedType))
                {
                    IMacroTriggerArgument argument = (IMacroTriggerArgument)Activator.CreateInstance(nestedType);
                    arguments.Add(argument);
                }
            }
            IEnumerable <IMacroTriggerArgument> argumentsOrdered = arguments.OrderBy(arg => arg.Index);
            int i = 0;

            foreach (IMacroTriggerArgument argument in argumentsOrdered)
            {
                if (argument.Index != i++)
                {
                    throw new Exception(); // ArgumentIndexMismatchException();
                }
            }
            Arguments = argumentsOrdered.ToArray();
        }
示例#2
0
 public TriggerArgumentControl(IMacroTriggerArgument argument, int argIndex, bool last)
 {
     InitializeComponent();
     this.argument = argument;
     this.argIndex = argIndex;
     this.last     = last;
 }