Пример #1
0
        public static bool TryParse(string input, out MediaTypeWithQualityHeaderValue headerValue)
        {
            MediaTypeHeaderValue mediaTypeHeaderValue;

            if (!MediaTypeHeaderValue.TryParse(input, out mediaTypeHeaderValue))
            {
                headerValue = null;
                return(false);
            }

            var    quality = HttpHeaderUtilitites.Match;
            string qualityStringValue;

            if (mediaTypeHeaderValue.Parameters.TryGetValue("q", out qualityStringValue))
            {
                if (!double.TryParse(
                        qualityStringValue,
                        NumberStyles.AllowLeadingWhite | NumberStyles.AllowDecimalPoint |
                        NumberStyles.AllowTrailingWhite,
                        NumberFormatInfo.InvariantInfo,
                        out quality))
                {
                    headerValue = null;
                    return(false);
                }
            }

            headerValue = new MediaTypeWithQualityHeaderValue()
            {
                MediaType      = mediaTypeHeaderValue.MediaType,
                MediaSubType   = mediaTypeHeaderValue.MediaSubType,
                MediaTypeRange = mediaTypeHeaderValue.MediaTypeRange,
                Charset        = mediaTypeHeaderValue.Charset,
                Parameters     = mediaTypeHeaderValue.Parameters,
                Quality        = quality,
            };

            return(true);
        }