C# 只能在一个级别以上删除注册表项吗?

C# 只能在一个级别以上删除注册表项吗?,c#,.net,registry,registrykey,C#,.net,Registry,Registrykey,在我们的应用程序中,我们有不同的组件,注册表项将在组件名中创建 例如 我们有一个名为Notification的组件,我们有如下注册表项 RegistryKey rKeyNotification = Registry.LocalMachine.OpenSubKey("SOFTWARE\\CompanyName\\ProdName\\Notification"); 现在我想删除这个键和所有子键 我试图完全删除这个rKeyNotification。但我找不到任何办法 我一直在努力 if (rKeyN

在我们的应用程序中,我们有不同的组件,注册表项将在组件名中创建

例如

我们有一个名为Notification的组件,我们有如下注册表项

RegistryKey rKeyNotification = Registry.LocalMachine.OpenSubKey("SOFTWARE\\CompanyName\\ProdName\\Notification");
现在我想删除这个键和所有子键

我试图完全删除这个rKeyNotification。但我找不到任何办法

我一直在努力

if (rKeyNotification != null) {

   rKeyNotification.DeleteSubKeyTree("Notification");
}
但这篇文章将查找
RegistryKey rKeyNotification=Registry.LocalMachine.OpenSubKey(“SOFTWARE\\CompanyName\\ProdName\\Notification\\Notification”)

没有像
rKeyNotification.DeleteSubKeyTree()这样的选项


我是否应该始终升级一级
(Registry.LocalMachine.OpenSubKey(“SOFTWARE\\CompanyName\\ProdName)
然后只删除该项?

没有方法删除项本身,但您可以直接使用
Registry.LocalMachine

string keyname = @"SOFTWARE\CompanyName\ProdName\Notification";
Registry.LocalMachine.DeleteSubKeyTree(keyname);

没有删除键本身的方法,但您可以直接使用注册表.LocalMachine

string keyname = @"SOFTWARE\CompanyName\ProdName\Notification";
Registry.LocalMachine.DeleteSubKeyTree(keyname);

您可以发布用于删除注册表项的代码的相关位吗?这有点道理-在允许删除后,
rkeyNotification
的状态会是什么样?没有其他方法可以获得实际上没有引用注册表中真实注册表项的
RegistryKey
对象,但无法阻止您删除后对其调用其他方法。您可以发布用于删除密钥的代码的相关位吗?这有点道理-在允许删除后,
rkeyNotification
的状态会是什么样?没有其他方法可以获取实际上不引用密钥的
RegistryKey
对象注册表,但没有办法阻止您在删除后对其调用其他方法。