0

Windows Phone 7 アプリケーションで、 Isolated Storageを使用して格納された大きな XML ファイル (都市のリスト) をクエリしたいと考えています。このようにすると、ファイルはメモリにロードされますか (> 5 mo) ? もしそうなら、他にどのような解決策がありますか?

編集:

詳細。AutoCompleteBox (http://www.jeff.wilcox.name/2008/10/introducing-autocompletebox/) を使用したいのですが、Web サービス (これは固定データであり、オンラインである必要はありません) を使用する代わりに、ファイル/データベース/分離ストレージを照会するには...都市の固定リストがあります。コメントで40kだと言いましたが、最終的には1k行に近づいたようです。

4

3 に答える 3

0

これにisolatedstorageを使用する代わりに、代わりにWebサービスを使用するオプションがありますか...それともオフラインアプローチ用にアプリを設計しますか?

Webサービス、wcf、またはjson対応のWebサービスのクエリは非常に簡単で、保守が簡単になります:)

于 2010-11-17T14:32:55.790 に答える
0

たとえば、レコードごとに 1 つの行を持つフィールド間の区切り記号を使用して、独自のファイル形式を作成します。こうすることで、ファイルを 1 行ずつ読み取って、データ構造に次のような利点を持たせることができます。

  1. ファイル全体をメモリにプルする必要はありません
  2. XML オーバーヘッドなし (デスクトップ アプリケーションでは問題にならないかもしれませんが、電話のコンテキストでは 5 MB のテキスト ファイルがかなり小さくなる可能性があります)

ばかげた例:

New York City; 12345
Berlin; 25635
...

編集:ボリュームがそれほど大きくない場合、オンデマンドでのインデックス作成やロードは必要ありません。上記のように都市を保存し (1 行に 1 レコード)、それらをリストに読み込み、LINQ を使用して必要な項目を選択します。これはおそらく高速で、アプリケーションの応答性を高く保ちます。

この場合、私の意見では、XML はこの仕事に最適なツールではありません。あなたの構造は非常に単純で、XML に格納するとおそらくファイル サイズが 2 倍になります。これはモバイル デバイスにとって懸念事項であり、解析も遅くなり、この場合の懸念事項でもあります。

于 2010-11-17T16:06:36.690 に答える
0

すべてのデータを含む大きなファイルを用意するのではなく、それを多数の小さなファイルに分割することはできません。(各都市に1つ?)

必要に応じて、それらすべてのインデックスを保持する別のファイルを作成できます。IsolatedStorageFile.GetFileNamesまたは、ファイルの名前によっては、 を使用してすべてのファイルのリストを取得できる場合があります。

于 2010-11-17T14:40:12.147 に答える