Example #1
0
        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.ParseParameters(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);
        }