我正在写一些保存一些值到注册表的C#.net代码。它工作得很好,直到我想保存一些二进制数据。在.net中将可序列化的对象保存到注册表中?
我有一个List<MyType>
对象,其中MyType
看起来是这样的:
[Serializable] public class MyType
{
public string s {get;set;}
public string t {get;set;}
}
我得到下面的代码中的错误:
List<MyType> objectToSaveInRegistry = getList();
RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(MySpecialKey, true);
registryKey.SetValue("MySpecialValueName", objectToSaveInRegistry , RegistryValueKind.Binary);
的错误是:“该类型的值对象的做不符合指定的Registry ValueKind或对象无法正确转换。“
我该怎么做才能将我的对象保存在注册表中?
为什么你要保存在注册表中,为什么不把它保存为xml文件并保存。 – 2011-12-20 17:58:32
@Srinivas,我的对象包含有关我正在开发的应用程序的配置信息。 Windows注册表是否意味着可以保存应用程序设置? – 2011-12-20 17:59:44
您正试图将列表传递给基本上期待字节数组的方法。您需要将您的列表转换为这种表示形式(通过序列化到MemoryStream或使用不同的序列化程序)。 –
Joe
2011-12-20 18:03:31