PackageUriIsValid() public static méthode

public static PackageUriIsValid ( Uri packageUri ) : void
packageUri System.Uri
Résultat void
Exemple #1
0
        public static Uri Create(Uri packageUri, Uri partUri, string fragment)
        {
            Check.PackageUri(packageUri);
            Check.PackageUriIsValid(packageUri);

            if (partUri != null)
            {
                Check.PartUriIsValid(partUri);
            }

            if (fragment != null && (fragment.Length == 0 || fragment[0] != '#'))
            {
                throw new ArgumentException("Fragment", "Fragment must not be empty and must start with '#'");
            }

            // FIXME: Validate that partUri is a valid one? Must be relative, must start with '/'

            // First replace the slashes, then escape the special characters
            string orig = packageUri.OriginalString.Replace('/', ',');

            if (partUri != null)
            {
                orig += partUri.OriginalString;
            }

//			if (sb[sb.Length - 1] != '/')
//				sb.Append ('/');

            if (fragment != null)
            {
                orig += fragment;
            }

            return(new Uri("pack://" + orig));
        }
        public static Uri Create(Uri packageUri, Uri partUri, string fragment)
        {
            Check.PackageUri(packageUri);
            Check.PackageUriIsValid(packageUri);

            if (partUri != null)
            {
                Check.PartUriIsValid(partUri);
            }

            if (fragment != null && (fragment.Length == 0 || fragment[0] != '#'))
            {
                throw new ArgumentException("Fragment", "Fragment must not be empty and must start with '#'");
            }

            // FIXME: Validate that partUri is a valid one? Must be relative, must start with '/'

            // First replace the slashes, then escape the special characters
            //string orig = packageUri.GetComponents(UriComponents.AbsoluteUri, UriFormat.UriEscaped);
            string orig = packageUri.OriginalString;

            foreach (var ch in _escapedChars)
            {
                orig = !orig.Contains(ch.ToString()) ? orig : orig.Replace(ch.ToString(), Uri.HexEscape(ch));
            }

            orig = orig.Replace('/', ',');

            if (partUri != null)
            {
                orig += partUri.OriginalString;
            }

            if ((fragment == null && partUri == null) && orig[orig.Length - 1] != '/')
            {
                orig += '/';
            }

            if (fragment != null)
            {
                orig += fragment;
            }

            return(new Uri("pack://" + orig));
        }