ResolveHelper() static private method

static private ResolveHelper ( Uri baseUri, Uri relativeUri, string &newUriString, bool &userEscaped, UriFormatException &e ) : Uri
baseUri Uri
relativeUri Uri
newUriString string
userEscaped bool
e UriFormatException
return Uri
Esempio n. 1
0
        //
        // Resolves a relative Uri object into new AbsoluteUri.
        //
        //  baseUri         - The baseUri used to resolve this Uri.
        //  relativeuri     - A relative Uri string passed by the application.
        //
        // This method returns:
        // The result Uri value used to represent a new Uri
        //
        protected virtual string?Resolve(Uri baseUri, Uri?relativeUri, out UriFormatException?parsingError)
        {
            if (baseUri.UserDrivenParsing)
            {
                throw new InvalidOperationException(SR.Format(SR.net_uri_UserDrivenParsing, this.GetType()));
            }

            if (!baseUri.IsAbsoluteUri)
            {
                throw new InvalidOperationException(SR.net_uri_NotAbsolute);
            }

            string?newUriString = null;
            bool   userEscaped  = false;

            parsingError = null;

            Uri?result = Uri.ResolveHelper(baseUri, relativeUri, ref newUriString, ref userEscaped);

            if (result != null)
            {
                return(result.OriginalString);
            }

            return(newUriString);
        }
        protected virtual string Resolve(Uri baseUri, Uri relativeUri, out UriFormatException parsingError)
        {
            if (baseUri.UserDrivenParsing)
            {
                throw new InvalidOperationException(SR.GetString("net_uri_UserDrivenParsing", new object[] { base.GetType().FullName }));
            }
            if (!baseUri.IsAbsoluteUri)
            {
                throw new InvalidOperationException(SR.GetString("net_uri_NotAbsolute"));
            }
            string newUriString = null;
            bool   userEscaped  = false;
            Uri    uri          = Uri.ResolveHelper(baseUri, relativeUri, ref newUriString, ref userEscaped, out parsingError);

            if (parsingError != null)
            {
                return(null);
            }
            if (uri != null)
            {
                return(uri.OriginalString);
            }
            return(newUriString);
        }