Пример #1
0
        public static Connection Parse(string value)
        {
            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            string [] parts = value.Split(' ');

            if (parts.Length != 3)
            {
                throw new FormatException("Value do not contain 3 parts as needed.");
            }

            if (parts [0] != "IN")
            {
                throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Net type {0} not suported", parts [0]));
            }

            switch (parts [1])
            {
            case "IP4":
                return(ConnectionIP4.Parse(parts [2]));

            case "IP6":
                return(ConnectionIP6.Parse(parts [2]));

            default:
                throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Address type {0} not suported", parts [1]));
            }
        }
Пример #2
0
        internal new static ConnectionIP6 Parse(string ipAddress)
        {
            string [] parts = ipAddress.Split('/');

            if (parts.Length > 2)
            {
                throw new FormatException("Too much address subpart in " + ipAddress);
            }

            ConnectionIP6 result = new ConnectionIP6 {
                Host = parts [0]
            };

            if (parts.Length > 1)
            {
                if (!int.TryParse(parts [1], NumberStyles.Integer, CultureInfo.InvariantCulture, out int numberOfAddress))
                {
                    throw new FormatException("Invalid number of address : " + parts [1]);
                }
                result.NumberOfAddress = numberOfAddress;
            }

            return(result);
        }