Domanda

In un'applicazione Windows Phone 7, vorrei interrogare un grosso file XML (elenco delle città) memorizzato utilizzando Isolato bagagli. Se lo faccio in questo modo, sarà il file viene caricato nella memoria (> 5 mesi)? In caso affermativo, quale altra soluzione ho?

Modifica:

Maggiori dettagli. Voglio usare AutoCompleteBox (http://www.jeff.wilcox.name/2008/10/introducing-autocompletebox/), ma invece di utilizzare un servizio web (questo è fissa dei dati, non c'è bisogno di essere on-line), voglio per interrogare un file / database di / storage isolato ... ho una lista fissa di città. Ho detto nei commenti si tratta di 40k, ma alla fine sembra più vicino a 1K righe.

È stato utile?

Soluzione

invece di utilizzare IsolatedStorage per questo, sarebbe un'opzione per l'utilizzo di un webservice invece ... o si fa a progettare la vostra applicazione di un approccio offline?

interrogazione di un webservice, WCF o JSON abilitato webservice è davvero semplice, e sarà più facile per voi per mantenere:)

Altri suggerimenti

Piuttosto che avere un grosso file contenente tutti i dati non puoi abbattere in un sacco di file più piccoli. (Uno per ogni città?)

Si potrebbe avere un file separato per mantenere un indice di tutti loro se necessario. In alternativa, a seconda della denominazione dei file, si può essere in grado di utilizzare IsolatedStorageFile.GetFileNames per ottenere un elenco di tutti i file.

Vorrei creare il mio formato di file, utilizzando, ad esempio, un separatore tra i campi, con una riga per ogni record. In questo modo è possibile leggere il file riga per riga per riempire la struttura di dati con i seguenti vantaggi:

  1. non c'è bisogno di tirare l'intero file in memoria
  2. non appesantisce XML (in un'applicazione desktop potrebbe non essere un problema, ma nel contesto del telefono un file di testo 5 MB può diventare un po 'più piccolo)

Esempio Dumb:

New York City; 12345
Berlin; 25635
...

Modifica , dato che il volume non è grande non hai bisogno di alcuna forma di indicizzazione o il caricamento su richiesta. Vorrei memorizzare le città come si è detto record di -uno per ogni line-, caricarli in un elenco e utilizzare LINQ per selezionare gli elementi necessari. Questo sarà probabilmente essere veloce e mantenere la vostra applicazione molto reattivo.

In questo caso, a mio parere, XML non è lo strumento migliore per il lavoro. La vostra struttura è molto semplice e la memorizzazione in XML probabilmente raddoppiare la dimensione del file, che è una preoccupazione per un dispositivo mobile, e sarebbe anche rallentare il parsing, anche una preoccupazione in questo caso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top