2

私はWindows8アプリケーションを持っています。このアプリケーションには、いくつかのカスタム定義されたクラスがあります。これらのインスタンスのインスタンスを分離ストレージに保存する必要があります。私の理解では、IsolatedStorageはApplicationDataContainerに置き換えられました。現在、私は次のことを試みています:

public class MyClass
{
  private HttpClient service = new HttpClient();

  public string FirstName { get; set; }

  public DateTime? BirthDate { get; set; }

  public int Gender { get; set; }

  public async Task Save()
  {
    // Do stuff...
  }
}

...

MyClass myInstance = new MyInstance();
// do stuff...

try {
  ApplicationDataContainer storage = ApplicationData.Current.LocalSettings;
  if (storage != null)
  {
    if (storage.Values.ContainsKey("MyKey"))
      storage.Values["MyKey"] = myInstance;
    else
      storage.Values.Add("MyKey", myInstance);
  }
} catch (Exception ex)
{
  MessageDialog dialog = new MessageDialog("Unable to save to isolated storage");
  dialog.ShowAsync();
}

私は何が欠けていますか。例外が常にスローされるのはなぜですか。例外はあまり説明的ではありません。それは単なる一般的なSystem.Exceptionであり、メッセージも役に立ちません。誰か助けてくれませんか?

ありがとうございました

4

2 に答える 2

3

上記のコードから得られる例外は非常に明確です。

このタイプのデータはサポートされていません。

Windowsランタイムを使用したアプリ データへのアクセスあたり

アプリの設定では、Windows ランタイムのデータ型がサポートされています。

バイナリ型がないことに注意してください。バイナリ データを格納する必要がある場合は、アプリケーション ファイルを使用します。

ApplicationDataCompositeValueクラスを使用して、アトミックに処理する必要がある設定をグループ化できます (ただし、サポートされているランタイム データ型である必要があります)。アプリケーション データ サンプルのシナリオ 4 がこれをカバーしています。

ただし、特定のケースでは、ファイルへのシリアル化とアプリ ファイル ストレージと設定の使用を検討することをお勧めします。

于 2012-10-21T18:00:31.500 に答える
0

このシナリオ用にModelStorageフレームワークを実装しました。

于 2012-11-18T14:29:50.237 に答える