Ладно, после гораздо большего расследования и стягивания волос предел в 16 Кб, похоже, стал красной селедкой. Это может быть актуально, но реальная проблема - это проблема сериализации.
Кажется, здесь есть 2 проблемы, касающиеся сериализации сложных типов в IsolatedStorageSettings. Первый - упомянутый выше, где класс _LocalSettings усекается на 16k на полпути через элемент XML. Это вызывает исключение «Операция не разрешена для IsolatedStorageFileStream». Второй тип имеет меньший сложный тип - после изучения содержимого _LocalSettings он, кажется, записывает в него, но затем в СЛЕДУЮЩИЙ раз вы загружаете приложение первыми настройками. Сохранение стирает все существующие настройки (т. Е. Не загружает существующие и сохранить их). В результате настройки _LocalSettings снова сбрасываются (т. Е. ВСЕ ваши настройки не сохраняются).
Проблема заключалась в том, что один из моих базовых типов (кстати, MVVM Light ViewModelBase - подробнее об этом здесь ) не имеет общедоступного конструктора без параметров и, следовательно, не сериализуем (не было предупреждений об этом , он просто показал странное поведение выше).
Вы должны выйти из программы, чтобы это произошло - когда вы читаете настройку после такой записи, она работает нормально - я подозреваю, что Silverlight делает больше за кулисами после полного выхода. Если кто-нибудь может подтвердить это ??
Как только я сделал сериализуемый базовый класс, он снова заработал.