1

List<Project>List<User>の2 つの主要なデータ タイプProjectを含める必要がある Windows 8 アプリを作成していUserますList

私は以前に Windows Phone アプリを作成しており、そこでは単純にアプリケーションの設定を使用して、同様のシナリオでデータを保存しました。そのため、Windows 8 でも機能することを願っていました。

ApplicationData.Current.LocalSettings-structure を使用してアプリ データを保存することにしました。ただし、データを保存しようとすると、次のようなエラーが発生します。

WinRT 情報: アプリケーション データ ストアに書き込む値をシリアル化しようとしてエラーが発生しました追加情報: この型のデータはサポートされていません。

[DataContract]違いが生じる場合は、モデルに属性が付けられます。

私がMicrosoft を理解している限り、この方法で保存できるのは標準のデータ型 (ブール値、文字列など) だけです。これは正しいです?

もしそうなら、どうすればこのように構造化されたデータを保存できますか?

助けていただければ幸いです。

4

1 に答える 1

3

複雑な型は少し面倒です。それが不可能であるとは断言できませんが、他にも選択肢があります。

データベース エンジンのオーバーヘッドなしでアプリケーション データを格納したい状況では、シリアル化を使用します。型の構成 (単純なデータ型に要約し、公開ゲッター/セッターを持つ) に応じて、XML シリアライゼーションやバイナリ シリアライゼーションを使用できます。

XML シリアル化は、アプリケーションの範囲外でデータを確認 (編集) できると便利な場合に適しています。(デバッグなど) ただし、カスタム シリアライザーのハンドコーディングを選択しない限り、データにさらに制限が課されます。バイナリ シリアル化はより柔軟であり、圧縮と暗号化を組み合わせることで、よりコンパクトで偽装された安全なデータ ストレージ オプションが提供されます。(圧縮/解凍と暗号化を使用する場合は、時間的に少し余分なコストがかかります。)

残念ながら、バイナリは、最初に Base64 文字列に変換するなどの処理を行わずに何かをローカル アプリケーション データに貼り付けるのにはあまり適していません。(その結果、大量のテキストが生成される可能性があります) 通常、シリアル化オプションを使用して、ユーザーが十分なアクセス許可を持つ指定されたフォルダーにファイルを保存することを検討します。

于 2012-09-26T02:26:04.130 に答える