public static IAddress[] StringToAddresses(string str) { var remoteAddresses = new List <IAddress>(); foreach (var remoteAddress in str.Split(',')) { DNSService dns; DHCPService dhcp; WINSService wins; LocalSubnet localSubnet; DefaultGateway defaultGateway; IPRange range; SingleIP ip; NetworkAddress network; if (DNSService.TryParse(remoteAddress, out dns)) { remoteAddresses.Add(dns); } else if (DHCPService.TryParse(remoteAddress, out dhcp)) { remoteAddresses.Add(dhcp); } else if (WINSService.TryParse(remoteAddress, out wins)) { remoteAddresses.Add(wins); } else if (LocalSubnet.TryParse(remoteAddress, out localSubnet)) { remoteAddresses.Add(localSubnet); } else if (DefaultGateway.TryParse(remoteAddress, out defaultGateway)) { remoteAddresses.Add(defaultGateway); } else if (IPRange.TryParse(remoteAddress, out range)) { remoteAddresses.Add(range); } else if (SingleIP.TryParse(remoteAddress, out ip)) { remoteAddresses.Add(ip); } else if (NetworkAddress.TryParse(remoteAddress, out network)) { remoteAddresses.Add(network); } } return(remoteAddresses.ToArray()); }
// ReSharper disable once ExcessiveIndentation public static IAddress[] StringToAddresses(string str) { var remoteAddresses = new List <IAddress>(); foreach (var remoteAddress in str.Split(',')) { if (DNSService.TryParse(remoteAddress, out var dns)) { remoteAddresses.Add(dns); } else if (DHCPService.TryParse(remoteAddress, out var dhcp)) { remoteAddresses.Add(dhcp); } else if (WINSService.TryParse(remoteAddress, out var wins)) { remoteAddresses.Add(wins); } else if (LocalSubnet.TryParse(remoteAddress, out var localSubnet)) { remoteAddresses.Add(localSubnet); } else if (DefaultGateway.TryParse(remoteAddress, out var defaultGateway)) { remoteAddresses.Add(defaultGateway); } else if (IPRange.TryParse(remoteAddress, out var range)) { remoteAddresses.Add(range); } else if (SingleIP.TryParse(remoteAddress, out SingleIP ip)) { remoteAddresses.Add(ip); } else if (NetworkAddress.TryParse(remoteAddress, out var network)) { remoteAddresses.Add(network); } } return(remoteAddresses.ToArray()); }
/// <summary> /// Determines whether a string is a valid local subnet address /// </summary> /// <returns> /// <see langword="true" /> if <paramref name="str" /> is a valid local subnet address; otherwise, /// <see langword="false" />. /// </returns> /// <param name="str">The string to validate.</param> /// <param name="service">The <see cref="LocalSubnet" /> instance that represents the passed string.</param> public static bool TryParse(string str, out LocalSubnet service) { return(TryParse <LocalSubnet>(str, out service)); }