/// <include file='RegistryConfigSource.xml' path='//Method[@name="AddMappingRecurse"]/docs/*' />
        public void AddMapping(RegistryKey registryKey, 
            string path,
            RegistryRecurse recurse)
        {
            RegistryKey key = registryKey.OpenSubKey (path, true);

            if (key == null) {
                throw new ArgumentException ("The specified key does not exist");
            }

            if (recurse == RegistryRecurse.Namespacing) {
                LoadKeyValues (key, path);
            } else {
                LoadKeyValues (key, ShortKeyName (key));
            }

            string[] subKeys = key.GetSubKeyNames ();
            for (int i = 0; i < subKeys.Length; i++)
            {
                switch (recurse)
                {
                case RegistryRecurse.None:
                    // no recursion
                    break;
                case RegistryRecurse.Namespacing:
                    AddMapping (registryKey, path + "\\" + subKeys[i], recurse);
                    break;
                case RegistryRecurse.Flattened:
                    AddMapping (key, subKeys[i], recurse);
                    break;
                }
            }
        }
Example #2
0
        /// <include file='RegistryConfigSource.xml' path='//Method[@name="AddMappingRecurse"]/docs/*' />
        public void AddMapping(RegistryKey registryKey,
                               string path,
                               RegistryRecurse recurse)
        {
            RegistryKey key = registryKey.OpenSubKey(path, true);

            if (key == null)
            {
                throw new ArgumentException("The specified key does not exist");
            }

            if (recurse == RegistryRecurse.Namespacing)
            {
                Console.WriteLine(key.Name + " " + path);
                LoadKeyValues(key, path);
            }
            else
            {
                LoadKeyValues(key, ShortKeyName(key));
            }

            string[] subKeys = key.GetSubKeyNames();
            for (int i = 0; i < subKeys.Length; i++)
            {
                switch (recurse)
                {
                case RegistryRecurse.None:
                    // no recursion
                    break;

                case RegistryRecurse.Namespacing:
                    AddMapping(registryKey, path + "\\" + subKeys[i], recurse);
                    break;

                case RegistryRecurse.Flattened:
                    AddMapping(key, subKeys[i], recurse);
                    break;
                }
            }
        }