in src/nms-api/Util/URISupport.cs [368:416]
            public Uri toUri()
            {
                StringBuilder sb = new StringBuilder();
                if (scheme != null)
                {
                    sb.Append(scheme);
                    sb.Append(':');
                }
                if (!string.IsNullOrEmpty(host))
                {
                    sb.Append(host);
                }
                else
                {
                    sb.Append('(');
                    for (int i = 0; i < components.Length; i++)
                    {
                        if (i != 0)
                        {
                            sb.Append(',');
                        }
                        sb.Append(components[i].ToString());
                    }
                    sb.Append(')');
                }
                if (path != null)
                {
                    sb.Append('/');
                    sb.Append(path);
                }
                if (parameters.Count != 0)
                {
                    sb.Append("?");
                    sb.Append(CreateQueryString(parameters));
                }
                if (fragment != null)
                {
                    sb.Append("#");
                    sb.Append(fragment);
                }
                return new Uri(sb.ToString());
            }