将xml文件存储在注册表中并在还原后

时间:2011-02-27 18:34:45

标签: asp.net xml registry

我想在注册表中删除一个xml文件,然后恢复它。可能吗?

我尝试使用此代码创建但它没有响应?!什么是问题?

enter code here

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        MemoryStream stream = new MemoryStream();
        BinaryFormatter formatter = new BinaryFormatter();
        List<int> f = new List<int>();
        f.Add(4);

        formatter.Serialize(stream, f);
        byte[] binary = stream.ToArray();
        string yu = Encoding.UTF8.GetString(binary);


        RegistryKey key = Registry.Users;
        RegistryKey key2 = key.OpenSubKey(".DEFAULT", true);
        key2.SetValue("my4",yu,RegistryValueKind.String );     // "why writed empty string in registry
    }
}

1 个答案:

答案 0 :(得分:0)

对此有几点评论:

1:注册表不是保存整个XML文件的正确位置。更常见的可能是将xml保存到文件系统,并可能将其位置保存在注册表中。

2:Registry.Users指的是注册表中通常不会保存数据的位置。它应该在HKey_Current_User(Registry.CurrentUser)或HKey_Local_Machine(Registry.LocalMachine)中,具体取决于数据是特定于PC上的所有用户还是仅针对当前用户。

3:我对前两个问题中的编码试图实现的内容感到非常困惑。制作字符串还有很长的路要走,内容可能与注册表不兼容,我可以看到与XML相关的任何内容。

我会强烈警告说,在不知道你正在做什么的情况下更新注册表是非常危险的。它很容易导致奇怪的错误甚至是非启动的PC。只有在您完全了解其工作原理后,才能继续尝试注册表更新。我会从像this之类的文章开始,然后从那里继续阅读。