protected NameValueWithParametersHeaderValue(NameValueWithParametersHeaderValue source) : base(source) { if (source.parameters != null) { foreach (var item in source.parameters) { Parameters.Add(item); } } }
public static bool TryParse(string input, out NameValueWithParametersHeaderValue parsedValue) { var lexer = new Lexer(input); Token token; if (TryParseElement(lexer, out parsedValue, out token) && token == Token.Type.End) { return(true); } parsedValue = null; return(false); }
static bool TryParseElement(Lexer lexer, out NameValueWithParametersHeaderValue parsedValue, out Token t) { parsedValue = null; t = lexer.Scan(); if (t != Token.Type.Token) { return(false); } parsedValue = new NameValueWithParametersHeaderValue() { Name = lexer.GetStringValue(t), }; t = lexer.Scan(); if (t == Token.Type.SeparatorEqual) { t = lexer.Scan(); if (t == Token.Type.Token || t == Token.Type.QuotedString) { parsedValue.value = lexer.GetStringValue(t); t = lexer.Scan(); } else { return(false); } } if (t == Token.Type.SeparatorSemicolon) { List <NameValueHeaderValue> result; if (!TryParseParameters(lexer, out result, out t)) { return(false); } parsedValue.parameters = result; } return(true); }