Можно ли читать / писать словарь в IsolatedStorageFile - PullRequest
1 голос
/ 21 июня 2011

В iOS SDK NSDictionary имеет методы writeToFile и dictionaryWithContentsOfFile для записи словаря в файл и чтения содержимого файла как словаря.Можно ли сделать то же самое в WP7 (C #)?

Ответы [ 4 ]

1 голос
/ 22 июня 2011

Я считаю, что библиотека SilverlightSerializer способна сериализовать словарь;Вы можете сериализовать свой словарь в байтовый массив и записать его в изолированное хранилище.

Примеры SilverlightSerializer: http://whydoidoit.com/silverlight-serializer/

Или попробуйте SharpSerializer, есть версия WP7 (и пакет NuGet):http://www.sharpserializer.com/en/tutorial/index.html

1 голос
/ 21 июня 2011

Да, но вы должны сериализовать словарь и записать в файл самостоятельно.

В качестве альтернативы вы можете добавить IsoaltedStorageSettings и позволить платформе выполнить сериализацию за вас.

0 голосов
/ 23 июня 2011

@ saikamesh, Вот поток, который описывает XML сериализацию словаря в .NET. Почему в .NET нет XML-сериализуемого словаря? .В нем перечислены различные подходы.Затем вы можете записать выходную строку в файл в изолированном хранилище.

Сопоставление классов iPhone с классами Windows Phone можно найти на сайте сопоставления iPhone и Android с WP7

0 голосов
/ 21 июня 2011

Изолированное хранилище обеспечивает файловую систему.Сериализация - это ортогональная проблема.

Можно написать любой граф объекта в IsolatedStorageSettings, если каждый объект в графе является сериализуемым DataContract.Многие распространенные типы каркасов не являются, например, GeoCoordinate.

Возможно, IsolatedStorageSettings - это словарь.Но предостережение относится к разделимости DataContract.

В равной степени возможно и намного разумнее записать словарь в файл, поскольку чем больше вы храните в ISS, тем больше времени требуется для его создания.Это может серьезно повлиять на загрузку приложения и время его возобновления.Вам все равно придется самостоятельно управлять сериализацией в той степени, в которой задействованы неподдерживаемые классы.Ваш самый большой недостаток - отсутствие BinaryFormatter в фреймворке (я не знаю, добавляет ли его Mango).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...