//public int Ttl { get; set; } internal new static ConnectionIP4 Parse(string ipAddress) { string [] parts = ipAddress.Split('/'); if (parts.Length > 3) { throw new FormatException("Too much address subpart in " + ipAddress); } ConnectionIP4 result = new ConnectionIP4 { Host = parts [0] }; if (parts.Length > 1) { if (!int.TryParse(parts [1], NumberStyles.Integer, CultureInfo.InvariantCulture, out int ttl)) { throw new FormatException("Invalid TTL format : " + parts [1]); } //result.Ttl = ttl; } if (parts.Length > 2) { if (!int.TryParse(parts [2], NumberStyles.Integer, CultureInfo.InvariantCulture, out int numberOfAddress)) { throw new FormatException("Invalid number of address : " + parts [2]); } result.NumberOfAddress = numberOfAddress; } return(result); }
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])); } }