public void ProcessAvailabilityAttribute(InvocationExpression invocationExpression) { originalArgIndex = 0; message = null; invocations.Clear(); foreach (var arg in invocationExpression.Arguments) { currentAvailability = null; arg.AcceptVisitor(this); foreach (var newAttr in invocations) { if (message != null) { newAttr.AddArgument(new NamedExpression( new LiteralExpression("message"), TokenType.Colon, new LiteralExpression(message) )); } invocationExpression.Parent.InsertChildBefore( invocationExpression, newAttr); } originalArgIndex++; } invocationExpression.Remove(); }