Хранение настроек пары ключ-значение в silverlight

У меня есть класс в Silverlight, который я хотел бы сохранить на диск. Он содержит пару основных объектов CLR — строки и целые числа, а также объект BitmapImage WPF.

Каков наилучший способ сохранить это в файл? Я попытался сериализовать класс и сбросить его в файл, но BitmapImage не поддерживает сериализацию.

В идеале я хочу сохранить растровое изображение как физическое изображение на диске (.png .jpg и т. д.) и сохранить объекты CLR в каком-то файле настроек пары ключ-значение. Это очень просто в WPF, так как он изначально поддерживает настройки проекта KVP, но в Silverlight есть гораздо больше ограничений.

Любой совет очень ценится!


person bluebit    schedule 09.11.2009    source источник


Ответы (2)


Чтобы хранить KeyValuePairs без особых хлопот на локальном компьютере, я бы рассмотрел возможность использования коллекции словарей IsolatedStorageSettings.ApplicationSettings.
Вот пример: http://msdn.microsoft.com/en-us/library/cc221360(VS.95).aspx

Если вы хотите сохранить BitmapImage в IsoStore, я бы предложил использовать своего рода кодировщик изображений в сочетании с WriteableBitmap. Размещение вашего BitmapImage (через элемент управления Image) в WriteableBitmap даст вам доступ к каждому отдельному пикселю. Используя PngEncoder, вы можете сохранить фактический файл изображения для этого изображения.
У Джеффа Просиса есть образец этого изображения: http://www.wintellect.com/CS/blogs/jprosise/archive/2009./07/17/fun-with-savefiledialog-and-writeablebitmap.aspx

person JustinAngel    schedule 09.11.2009

Для части изображения, если вы можете использовать WriteableBitmap вместо BitmapImage, возможно, это поможет: http://www.codeproject.com/Articles/38636/Saving-Bitmaps-to-Isolated-Storage-in-Silverlight-.aspx?display=Print

person Konamiman    schedule 09.11.2009