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(); }
public TriggerArgumentControl(IMacroTriggerArgument argument, int argIndex, bool last) { InitializeComponent(); this.argument = argument; this.argIndex = argIndex; this.last = last; }