Silverlight Isolated Хранение и загрузка больших файлов - PullRequest
0 голосов
/ 17 ноября 2010

В приложении Windows Phone 7 я хотел бы запросить большой XML-файл (список городов), хранящийся с использованием Изолированное хранилище .Если я сделаю это таким образом, файл будет загружен в память (> 5 месяцев)?Если да, то какое еще решение у меня есть?

Редактировать:

Подробнее.Я хочу использовать AutoCompleteBox (http://www.jeff.wilcox.name/2008/10/introducing-autocompletebox/),, но вместо использования веб-службы (это фиксированные данные, нет необходимости подключаться к сети), я хочу запросить файл / базу данных / изолированное хранилище ... У меня есть фиксированный список городовЯ сказал в комментариях, что это 40 КБ, но в конце концов оно кажется ближе к 1 КБ строк.

Ответы [ 3 ]

0 голосов
/ 17 ноября 2010

Вместо того, чтобы иметь большой файл, содержащий все данные, вы не можете разбить его на множество небольших файлов.(По одному на каждый город?)

У вас может быть отдельный файл для хранения индекса их всех, если это необходимо.Кроме того, в зависимости от именования файлов, вы можете использовать IsolatedStorageFile.GetFileNames, чтобы получить список всех файлов.

0 голосов
/ 17 ноября 2010

Я бы создал свой собственный формат файла, используя, например, разделитель между полями, по одной строке для каждой записи.Таким образом, вы можете читать файл построчно, чтобы заполнить структуру данных следующими преимуществами:

  1. нет необходимости извлекать весь файл в память
  2. нет затрат на XML (вдля настольного приложения это может не быть проблемой, но в контексте телефона текстовый файл размером 5 МБ может стать немного меньше)

Тупой пример:

New York City; 12345
Berlin; 25635
...

РЕДАКТИРОВАТЬ: , учитывая, что объем не так велик, вам не нужна никакая форма индексации или загрузки по требованию.Я бы сохранил города, как указано выше - по одной записи на строку, - загрузил их в список и использовал LINQ, чтобы выбрать нужные элементы.Это, вероятно, будет быстрым и сделает ваше приложение очень отзывчивым.

В этом случае, на мой взгляд, XML не лучший инструмент для работы.Ваша структура очень проста, и хранение в XML, вероятно, удвоит размер файла, что является проблемой для мобильного устройства, а также замедлит синтаксический анализ, что также является проблемой в этом случае.

0 голосов
/ 17 ноября 2010

вместо того, чтобы использовать для этого изолированное хранилище, можно ли вместо этого использовать веб-сервис ... или вы разрабатываете свое приложение для автономного подхода?

Запрос к веб-сервису, веб-сервису с поддержкой wcf или json действительно прост, и вам будет проще поддерживать его:)

...