System.Uri.IsBaseOf C# (CSharp) Method

IsBaseOf() public method

public IsBaseOf ( Uri uri ) : bool
uri Uri
return bool
        public bool IsBaseOf(Uri uri)
        {
            if ((object)uri == null)
                throw new ArgumentNullException(nameof(uri));

            if (!IsAbsoluteUri)
                return false;

            if (Syntax.IsSimple)
                return IsBaseOfHelper(uri);

            return Syntax.InternalIsBaseOf(this, uri);
        }

Usage Example

        /// <summary>Append a relative path to a Uri, handling traling slashes appropiately.</summary>
        /// <param name="uri">The base Uri. </param>
        /// <param name="relativeOrAbslouteUri">The relative or absloute URI. </param>
        /// <param name="sep">The seperator. </param>
        /// <returns>The appended Uri. </returns>
        internal static Uri AppendPathToUri(Uri uri, string relativeOrAbslouteUri, string sep)
        {
            Uri relativeUri;

            // Because of URI's Scheme, URI.TryCreate() can't differentiate a string with colon from an absolute URI.
            // A workaround is added here to verify if a given string is an absolute URI.
            if (Uri.TryCreate(relativeOrAbslouteUri, UriKind.Absolute, out relativeUri)
                && (relativeUri.Scheme == "http" || relativeUri.Scheme == "https"))
            {
                // Handle case if relPath is an absolute Uri
                if (uri.IsBaseOf(relativeUri))
                {
                    return relativeUri;
                }

                // Happens when using fiddler, DNS aliases, or potentially NATs
                var absoluteUri = new Uri(relativeOrAbslouteUri);
                return new Uri(uri, absoluteUri.AbsolutePath);
            }

            var ub = new UriBuilder(uri);
            var appendString = ub.Path.EndsWith(sep) ? relativeOrAbslouteUri : sep + relativeOrAbslouteUri;

            var escapedRelativeOrAbslouteUri = Uri.EscapeUriString(appendString);
            ub.Path += escapedRelativeOrAbslouteUri;

            return ub.Uri;
        }
All Usage Examples Of System.Uri::IsBaseOf