public void Add(RouteToken record) { _records.Add(record); var recordIndex = _records.Count; _hash = _hash.MergeHash(record.Hash); var recordTokenString = record.Token.ToString(); if (Equals(record, Wildcard)) { _regexPatternTokens.Add("(?<" + recordIndex + ">\\d+?)"); if (!_recursiveStart.HasValue) { _recursiveStart = recordIndex - 1; } _recursiveEnd = recordIndex; } else if (Equals(record, WildcardRecursive)) { _regexPatternTokens.Add("(?<" + recordIndex + ">.+?)"); if (!_recursiveStart.HasValue) { _recursiveStart = recordIndex - 1; } _recursiveEnd = recordIndex; } else { _regexPatternTokens.Add("(?<" + recordIndex + ">" + recordTokenString + ")"); } _regexInputTokens.Add(recordTokenString); }
static RouteTokenSequenceBuilder() { Wildcard = Route.EnsureTokenCached(Route.Wildcard); WildcardRecursive = Route.EnsureTokenCached(Route.WildcardRecursive); }