/// <summary>
        /// Constructor - loads the resource stream
        /// </summary>
        /// <param name="path">The path to the resource to load</param>
        /// <param name="uriRegistry">The global registry of URIs</param>
        internal MetadataArtifactLoaderResource(Assembly assembly, string resourceName, ICollection <string> uriRegistry)
        {
            Debug.Assert(assembly != null);
            Debug.Assert(resourceName != null);

            _assembly     = assembly;
            _resourceName = resourceName;

            string tempPath = MetadataArtifactLoaderCompositeResource.CreateResPath(_assembly, _resourceName);

            _alreadyLoaded = uriRegistry.Contains(tempPath);
            if (!_alreadyLoaded)
            {
                uriRegistry.Add(tempPath);

                // '_alreadyLoaded' is not set because while we would like to prevent
                // other instances of MetadataArtifactLoaderFile that wrap the same
                // _path from being added to the list of paths/readers, we do want to
                // include this particular instance.
            }
        }