URSA.Web.Http.HeaderParameter.Parse C# (CSharp) Метод

Parse() публичный статический Метод

Parses given string as the parameter.
public static Parse ( string parameter ) : HeaderParameter
parameter string Parameter string to be parsed.
Результат HeaderParameter
        public static HeaderParameter Parse(string parameter)
        {
            if (parameter == null)
            {
                throw new ArgumentNullException("parameter");
            }

            if (parameter.Length == 0)
            {
                throw new ArgumentOutOfRangeException("parameter");
            }

            string[] parts = parameter.Split('=');
            string key = parts[0].Trim();
            if (key.Length == 0)
            {
                throw new ArgumentOutOfRangeException("parameter");
            }

            string rest = (parts.Length > 1 ? parameter.Substring(parts[0].Length + 1).Trim() : null);
            if ((rest != null) && (rest.Length == 0))
            {
                throw new InvalidOperationException("Missing value of the parameter");
            }

            return ParseInternal(key, rest);
        }

Usage Example

Пример #1
0
        internal static HeaderValue ParseInternal(string header, string value)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            HeaderParameterCollection parameters       = new HeaderParameterCollection();
            StringBuilder             currentValue     = new StringBuilder(64);
            StringBuilder             currentParameter = new StringBuilder(128);
            StringBuilder             currentTarget    = currentValue;
            bool isInString = false;
            bool isEscape   = false;

            foreach (char letter in value)
            {
                switch (letter)
                {
                default:
                    ParseOtherChars(letter, currentTarget, ref isInString, ref isEscape);
                    break;

                case '\\':
                    ParseEscapeChar(letter, currentTarget, ref isInString, ref isEscape);
                    break;

                case '"':
                    ParseStringChar(letter, currentTarget, ref isInString, ref isEscape);
                    break;

                case ';':
                    ParseSeparatorChar(letter, ref currentTarget, ref isInString, ref isEscape, currentValue, currentParameter, parameters);
                    break;
                }
            }

            if (currentParameter.Length > 0)
            {
                parameters.Add(HeaderParameter.Parse(currentParameter.ToString().Trim()));
            }

            return(CreateInstance(header, currentValue.ToString(), parameters));
        }
All Usage Examples Of URSA.Web.Http.HeaderParameter::Parse