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 型などの基本型のシリアル化のみをサポートします。
私の問題を解決する方法を教えてください。