Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 865425
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T09:38:15+00:00 2026-05-15T09:38:15+00:00

What is the simplest way to verify that a pack uri can be found?

  • 0

What is the simplest way to verify that a pack uri can be found?

For example, given

pack://application:,,,Rhino.Mocks;3.5.0.1337;0b3305902db7183f;component/SomeImage.png

how would I check whether the image actually exists?

Cheers,
Berryl

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T09:38:16+00:00Added an answer on May 15, 2026 at 9:38 am

    I couldn’t find a simple answer to this, so I wound up rolling my own code to accomplish three things with respect to image resources:
    (1) have a string representation of a pack uri (databind)
    (2) verify that the image is located where I think it is located (unit test)
    (3) verify that the pack uri can be used to set an image (unit test)

    Part of the reason this isn’t simple is because pack uri’s are a bit confusing at first, and come in several flavors. This code is for a pack uri that represents an image that is included in a VS assembly (either locally or a referenced assembly with a build action of ‘resource’. This msdn articles clarifies what that means in this context. You also need to understand more about assemblies and builds than might initially seem like a good time.

    Hope this makes it easier for someone else. Cheers,
    Berryl

        /// <summary> (1) Creates a 'Resource' pack URI .</summary>
        public static Uri CreatePackUri(Assembly assembly, string path, PackType packType)
        {
            Check.RequireNotNull(assembly);
            Check.RequireStringValue(path, "path");
    
            const string startString = "pack://application:,,,/{0};component/{1}";
            string packString;
            switch (packType)
            {
                case PackType.ReferencedAssemblySimpleName:
                    packString = string.Format(startString, assembly.GetName().Name, path);
                    break;
                case PackType.ReferencedAssemblyAllAvailableParts:
                    // exercise for the reader
                    break;
                default:
                    throw new ArgumentOutOfRangeException("packType");
            }
            return new Uri(packString);
        }
    
        /// <summary>(2) Verify the resource is located where I think it is.</summary>
        public static bool ResourceExists(Assembly assembly, string resourcePath)
        {
            return GetResourcePaths(assembly).Contains(resourcePath.ToLowerInvariant());
        }
    
        public static IEnumerable<object> GetResourcePaths(Assembly assembly, CultureInfo culture)
        {
            var resourceName = assembly.GetName().Name + ".g";
            var resourceManager = new ResourceManager(resourceName, assembly);
    
            try
            {
                var resourceSet = resourceManager.GetResourceSet(culture, true, true);
    
                foreach (DictionaryEntry resource in resourceSet)
                {
                    yield return resource.Key;
                }
            }
            finally
            {
                resourceManager.ReleaseAllResources();
            }
        }
    
        /// <summary>(3) Verify the uri can construct an image.</summary>
        public static bool CanCreateImageFrom(Uri uri)
        {
            try
            {
                var bm = new BitmapImage(uri);
                return bm.UriSource == uri;
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return false;
            }
        }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

What is the simplest most effective way to verify that your SQLite db is
What is the simplest way to determine the length (in seconds) of a given
What's the simplest way to connect and query a database for a set of
What's the simplest way of blocking a thread until a file has been unlocked
What would be the simplest way to daemonize a python script in Linux ?
What is the simplest way to interact between a SAP OMS and Websphere Commerce?
What is the simplest way (least error-prone, least lines of code, however you want
What is the simplest way to programmatically export Excel data to Matlab?
What is the simplest way to identify and separate GET and POST parameters from
What's the simplest way to convert a Unicode codepoint into a UTF-8 byte sequence

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.