NLog.Internal.NetworkSenders.NetworkSender.ParseEndpointAddress C# (CSharp) Method

ParseEndpointAddress() protected method

Parses the URI into an endpoint address.
protected ParseEndpointAddress ( Uri uri, AddressFamily addressFamily ) : EndPoint
uri System.Uri The URI to parse.
addressFamily AddressFamily The address family.
return System.Net.EndPoint
        protected virtual EndPoint ParseEndpointAddress(Uri uri, AddressFamily addressFamily)
        {
#if SILVERLIGHT
            return new DnsEndPoint(uri.Host, uri.Port, addressFamily);
#else
            switch (uri.HostNameType)
            {
                case UriHostNameType.IPv4:
                case UriHostNameType.IPv6:
                    return new IPEndPoint(IPAddress.Parse(uri.Host), uri.Port);

                default:
                    {
                        var addresses = Dns.GetHostEntry(uri.Host).AddressList;
                        foreach (var addr in addresses)
                        {
                            if (addr.AddressFamily == addressFamily || addressFamily == AddressFamily.Unspecified)
                            {
                                return new IPEndPoint(addr, uri.Port);
                            }
                        }

                        throw new IOException("Cannot resolve '" + uri.Host + "' to an address in '" + addressFamily + "'");
                    }
            }
#endif
        }