- internal static bool TryParse<T> (string input, out T parsedValue, Func<T> factory) where T : MediaTypeHeaderValue
- {
- parsedValue = null;
-
- var lexer = new Lexer (input);
-
- string media;
- List<NameValueHeaderValue> parameters = null;
- var token = TryParseMediaType (lexer, out media);
- if (token == null)
- return false;
-
- switch (token.Value.Kind) {
- case Token.Type.SeparatorSemicolon:
- if (!NameValueHeaderValue.TryParseParameters (lexer, out parameters))
- return false;
- break;
- case Token.Type.End:
- break;
- default:
- return false;
- }
-
- parsedValue = factory ();
- parsedValue.media_type = media;
- parsedValue.parameters = parameters;
-
- return true;
- }
-
- static Token? TryParseMediaType (Lexer lexer, out string media)