是否可以在不诉诸自定义序列化的情况下将自定义对象的 ArrayList 保存到应用程序用户设置中?
例如,给定一个仅包含公共 get/set 属性和私有支持字段的基本数据类:
[Serializable]
class SimpleClass()
{
...
}
当我在代码中运行以下代码,然后重新启动应用程序时,名为 MyList 的 ArrayList 设置始终为空,即未保存。
if (Properties.Settings.Default.MyList==null)
{
Properties.Settings.Default.MyList=new ArrayList();
}
Properties.Settings.Default.MyList.Add(new SimpleClass(DateTime.Now.ToString()));
Properties.Settings.Default.Save();
我意识到没有输入 ArrayList,即。它拥有一组对象。然而,在每个对象上使用 GetType() 来确定实际类型很简单。这应该允许序列化发生,不是吗?
我也知道如何绕过这个执行一些自定义序列化。这只是一种痛苦,这似乎不起作用,因为它对于更简单的情况来说是迄今为止最方便的。
有任何想法吗?