1

Windows 8 アプリケーション (Windows ストア アプリケーション) に取り組んでいます。2 つのナビゲーション パラメータを持つページがあります。

if (navigationParameter is int)
{
     BindByBoxId(navigationParameter);
}
else if (navigationParameter is Word)
{
     BindByWordObject(navigationParameter as Word);
}

アプリケーションがナビゲーション パラメーターとして整数を使用してページに入ると、アプリケーションがサスペンド モードになった後はすべて問題ありませんが、ナビゲーション パラメーターが単語オブジェクト (複雑なオブジェクト) の場合、OnSuspendingイベント ハンドラーの実行時にアプリケーションがクラッシュします。

SuspensionManagerクラス内のコードの次の部分の問題をさらに調査することによって:

 private static void SaveFrameNavigationState(Frame frame)
 {
      var frameState = SessionStateForFrame(frame);
      frameState["Navigation"] = frame.GetNavigationState();
 }

問題は「GetNavigationState. MSDNのメソッドの説明には、次の事実が記載されています。

注 これらのメソッドで使用されるシリアル化形式は、内部使用専用です。アプリは、それに依存関係を形成するべきではありません。さらに、この形式は、文字列、文字、数値、および GUID 型などの基本型のシリアル化のみをサポートします。

私の問題を解決する方法を教えてください。

4

1 に答える 1