/// <devdoc>
        ///     Retrieves an enumerator that can enumerate
        ///     assembly names matching name.
        /// </devdoc>
        internal IEnumerable GetAssemblyNames(string name)
        {
            IVsComponentEnumeratorFactory f = EnumFactory;

            if (f != null)
            {
                IEnumerable assemblyEnum = null;

                if (enumCache != null)
                {
                    assemblyEnum = (IEnumerable)enumCache[name];
                }
                else
                {
                    enumCache = new Hashtable();
                }

                if (assemblyEnum == null)
                {
                    assemblyEnum    = new VSAssemblyEnumerator(f, name);
                    enumCache[name] = assemblyEnum;
                }

                return(assemblyEnum);
            }
            else
            {
                return(new AssemblyName[0]);
            }
        }
            /// <devdoc>
            ///     Ctor.  enumFactory must be valid.
            /// </devdoc>
            public VSAssemblyEnumerator(IVsComponentEnumeratorFactory enumFactory, string name)
            {
                this.enumFactory = enumFactory;
                this.current     = -1;

                if (name != null)
                {
                    this.name = name + ".dll";
                }
            }
        /// <devdoc>
        ///     Retrieves an enumerator that can enumerate
        ///     assembly names matching name.
        /// </devdoc>
        internal IEnumerable GetAssemblyNames()
        {
            IVsComponentEnumeratorFactory f = EnumFactory;

            if (f != null)
            {
                return(new VSAssemblyEnumerator(f, null));
            }
            else
            {
                return(new AssemblyName[0]);
            }
        }
 /// <devdoc>
 ///     Ctor.  enumFactory must be valid.
 /// </devdoc>
 public VSAssemblyEnumerator(IVsComponentEnumeratorFactory enumFactory, string name) {
     this.enumFactory = enumFactory;
     this.current = -1;
     
     if (name != null) {
         this.name = name + ".dll";
     }
 }