void InvalidateArguments(ProcedureStep step, Procedure procedure) { foreach (var argument in step.GetType().GetProperties().Where(x => x.PropertyType == typeof(Argument))) { var value = (Argument)argument.GetValue(step, null); InvalidateArgument(procedure, value); } }