Ejemplo n.º 1
0
        /// <summary>Parses a protocol string in the stringified proxy format into a Protocol.</summary>
        /// <param name="str">The string to parse.</param>
        /// <returns>The parsed protocol, or throws an exception if the string cannot be parsed.</returns>
        internal static Protocol Parse(string str)
        {
            switch (str)
            {
            case "ice1":
                return(Protocol.Ice1);

            case "ice2":
                return(Protocol.Ice2);

            default:
                // Parse as a Major.Minor encoding:
                if (Encoding.TryParse(str, out Encoding encoding) && encoding.Minor == 0)
                {
                    return((Protocol)encoding.Major);
                }
                byte value = byte.Parse(str, CultureInfo.InvariantCulture);
                return((Protocol)value);
            }
        }