internal static void AddNames(Expression expression, NameBuilder nb) { if (expression == null) { return; } switch (expression.NodeType) { case ExpressionType.MemberAccess: var memberExpression = (MemberExpression)expression; AddNames(memberExpression.Expression, nb); if (nb.DotNeeded) { nb.Append("."); } nb.Append(memberExpression.Member.Name); break; //case ExpressionType.Convert: // var unaryExpression = (UnaryExpression)expression; // AddNames(unaryExpression.Operand, nb); // break; case ExpressionType.Call: var callExpression = (MethodCallExpression)expression; MethodInfo method = callExpression.Method; bool isIndexer = (method.Name == "get_Item" && method.IsSpecialName); if (!isIndexer) { goto default; } AddNames(callExpression.Object, nb); nb.Append("[" + GetArguments(callExpression.Arguments).Aggregate((a, b) => a + b) + "]"); break; case ExpressionType.Parameter: break; default: throw new InvalidOperationException( string.Format("Unsupported expression type \"{0}\" in named expression", Enum.GetName(typeof(ExpressionType), expression.NodeType))); } }
protected List <string> GetLocalAccounts(int countAccounts) { var result = new List <string>(); var alphabet = "abcdefghijklmnopqrstuvwxyz"; for (int i = 0; i < countAccounts; i++) { NameBuilder.Clear(); for (var j = 0; j < 6; j++) { NameBuilder.Append(alphabet[Random.Next(26)]); } result.Add($"{NameBuilder}@ageron.info"); } return(result); }
public void ProcessToken() { Content.Append(";"); bool parsingString = false; bool parseName = false; bool parseAttribute = false; for (int i = 0; i < Content.Length - 1; i++) { char c = Content[i]; char c1 = Content[i + 1]; if (c == '"') { parsingString = !parsingString; } if (!parsingString && (c == '<' || c == '/') && char.IsLetter(c1)) { parseName = true; } if (parseName) { if (c == ' ') { parseAttribute = true; } if (parseAttribute) { AttributeBuilder.Append(c); } else { if (!parsingString && c == '/' || c == '<' || c == '>') { continue; } NameBuilder.Append(c); } } } }