/// <summary> /// Helper method for <see cref="GetToolboxProviderInfoMap"/> /// </summary> private static void LoadExtensionToolboxProviders(RegistryKey rootKey, IDictionary <string, ToolboxProviderInfo> providerMap) { if (null == rootKey) { return; } using (RegistryKey hkeyExtensions = rootKey.OpenSubKey(REGISTRYKEY_EXTENSIONS, RegistryKeyPermissionCheck.ReadSubTree)) { if (hkeyExtensions != null) { string[] extensionNamespaces = hkeyExtensions.GetSubKeyNames(); for (int i = 0; i < extensionNamespaces.Length; ++i) { string extensionNamespace = extensionNamespaces[i]; using (RegistryKey hkeyExtensionKey = hkeyExtensions.OpenSubKey(extensionNamespace)) { int? revisionNumber = hkeyExtensionKey.GetValue("ToolboxItemProviderRevisionNumber") as int?; string extensionClass; if (revisionNumber.HasValue && !string.IsNullOrEmpty(extensionClass = hkeyExtensionKey.GetValue("Class") as string)) { providerMap[extensionClass] = new ToolboxProviderInfo(extensionNamespace, revisionNumber.Value); } } } } } }
/// <summary> /// Helper method for <see cref="GetToolboxProviderInfoMap"/> /// </summary> private static void LoadExtensionToolboxProviders(RegistryKey rootKey, IDictionary<string, ToolboxProviderInfo> providerMap) { if (null == rootKey) { return; } using (RegistryKey hkeyExtensions = rootKey.OpenSubKey(REGISTRYKEY_EXTENSIONS, RegistryKeyPermissionCheck.ReadSubTree)) { if (hkeyExtensions != null) { string[] extensionNamespaces = hkeyExtensions.GetSubKeyNames(); for (int i = 0; i < extensionNamespaces.Length; ++i) { string extensionNamespace = extensionNamespaces[i]; using (RegistryKey hkeyExtensionKey = hkeyExtensions.OpenSubKey(extensionNamespace)) { int? revisionNumber = hkeyExtensionKey.GetValue("ToolboxItemProviderRevisionNumber") as int?; string extensionClass; if (revisionNumber.HasValue && !string.IsNullOrEmpty(extensionClass = hkeyExtensionKey.GetValue("Class") as string)) { providerMap[extensionClass] = new ToolboxProviderInfo(extensionNamespace, revisionNumber.Value); } } } } } }