程序在
崩溃var subdomain = new Dictionary
Visual Studio所说的消息是“参数异常未处理”
我不确定如何解决它或它意味着什么?任何帮助将不胜感激。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Win32; namespace LotusTrustedSites { class ReportDownloader { [STAThread] static void Main(string[] args) { const string domainsKeyLocation = @"Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains"; const string domain = @"newsite.com"; const int trustedSiteZone = 0x2; var subdomains = new Dictionary { {"www", "https"}, {"www", "http"}, {"blog", "https"}, {"blog", "http"} }; RegistryKey currentUserKey = Registry.CurrentUser; currentUserKey.GetOrCreateSubKey(domainsKeyLocation, domain, false); foreach (var subdomain in subdomains) { CreateSubdomainKeyAndValue(currentUserKey, domainsKeyLocation, domain, subdomain, trustedSiteZone); } //automation code } private static void CreateSubdomainKeyAndValue(RegistryKey currentUserKey, string domainsKeyLocation, string domain, KeyValuePair subdomain, int zone) { RegistryKey subdomainRegistryKey = currentUserKey.GetOrCreateSubKey(string.Format(@"{0}\{1}", domainsKeyLocation, domain), subdomain.Key, true); object objSubDomainValue = subdomainRegistryKey.GetValue(subdomain.Value); if (objSubDomainValue == null || Convert.ToInt32(objSubDomainValue) != zone) { subdomainRegistryKey.SetValue(subdomain.Value, zone, RegistryValueKind.DWord); } } } public static class RegistryKeyExtensionMethods { public static RegistryKey GetOrCreateSubKey(this RegistryKey registryKey, string parentKeyLocation, string key, bool writable) { string keyLocation = string.Format(@"{0}\{1}", parentKeyLocation, key); RegistryKey foundRegistryKey = registryKey.OpenSubKey(keyLocation, writable); return foundRegistryKey ?? registryKey.CreateSubKey(parentKeyLocation, key); } public static RegistryKey CreateSubKey(this RegistryKey registryKey, string parentKeyLocation, string key) { RegistryKey parentKey = registryKey.OpenSubKey(parentKeyLocation, true); //must be writable == true if (parentKey == null) { throw new NullReferenceException(string.Format("Missing parent key: {0}", parentKeyLocation)); } RegistryKey createdKey = parentKey.CreateSubKey(key); if (createdKey == null) { throw new Exception(string.Format("Key not created: {0}", key)); } return createdKey; } } }
答案 0 :(得分:1)
您有重复的密钥。 Dictionary
要求密钥是唯一的。