Проблемы с сохранением коллекции объектов в настройках приложения

Я пытаюсь сохранить коллекцию пользовательских объектов в настройках приложения.

С некоторой помощьюэтот связанный вопросвот что у меня сейчас есть:

// implementing ApplicationSettingsBase so this shows up in the Settings designer's 
// browse function
public class PeopleHolder : ApplicationSettingsBase
{
    [UserScopedSetting()]
    [SettingsSerializeAs(System.Configuration.SettingsSerializeAs.Xml)]
    public ObservableCollection<Person> People { get; set; }
}


[Serializable]
public class Person
{
    public String FirstName { get; set; }
}

public MainWindow()
{
    InitializeComponent();

    // AllPeople is always null, not persisting
    if (Properties.Settings.Default.AllPeople == null)
    {
        Properties.Settings.Default.AllPeople = new PeopleHolder()
            {
                People = new ObservableCollection<Person> 
                    { 
                        new Person() { FirstName = "bob" },
                        new Person() { FirstName = "sue" },
                        new Person() { FirstName = "bill" }
                    }
            };
        Properties.Settings.Default.Save();
    }
    else
    {
        MessageBox.Show(Properties.Settings.Default.AllPeople.People.Count.ToString());
    }
}

В конструкторе Settings.Settings я добавил свойство типа PeopleHolder с помощью кнопки браузера и установил область действия «Пользователь». Метод Save (), кажется, завершается успешно, сообщений об ошибках нет, но при каждом перезапуске настройки приложения не сохраняются.

Хотя это и не показано в приведенном выше коде, я могу сохранить строки, но не свою собственную коллекцию (я заметил, что в других подобных вопросах по SO иногда могут возникать проблемы с номерами версий, которые не позволяют сохранить настройки при отладке, поэтому я хочу использовать правило это как возможный виновник.)

Есть идеи? Я уверен, что есть очень простой способ сделать это, что я просто скучаю :).

Спасибо за вашу помощь!

Ответы на вопрос(2)

Ваш ответ на вопрос