Можно ли сохранить ArrayList пользовательских объектов в пользовательских настройках приложения, не прибегая к пользовательской сериализации?
Например, для базового класса данных, содержащего только общедоступные свойства get/set и закрытые резервные поля:
[Serializable]
class SimpleClass()
{
...
}
Когда я запускаю следующий код, а затем перезапускаю приложение, параметр ArrayList с именем MyList всегда имеет значение null, т. е. он не сохраняется.
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() для каждого объекта, чтобы определить фактический тип. Это должно разрешить сериализацию, не так ли?
Я также знаю, как обойти это, выполнив некоторую пользовательскую сериализацию. Это просто боль, похоже, это не работает, поскольку это было бы наиболее удобно для более простых ситуаций.
Любые идеи?