2011-07-23 22 views
0

私はアプリケーションを無効にした後にアプリケーションをアクティブにするときにアプリケーションがクラッシュするため、非アクティブ化中にトーンストーン処理中に値が保存されないため、非アクティブ化時にアプリケーションの状態を保存します。ですから、私は、非アクティブ化時にオブジェクトを直列化し、アクティブ化時にそれらを逆シリアル化するソリューションを考え出します。私は記事http://onishimura.com/2010/07/25/windows-phone-7-tutorial-creating-a-simple-notes-app-with-silverlight-part-1/に従った。Windows phone 7のアプリケーションの非アクティブ化とアクティブ化でクラスオブジェクトをシリアル化および逆シリアル化する方法はありますか?

ファイルをシリアル化するには、それはメッセージを示す例外InvalidDataContractExceptionいます:

「タイプ 『をSystem.Windows.UIElement』シリアライズすることはできませんDataContractAttribute属性でマークし、あなたが望むそのすべてのメンバーをマークすることを検討してください。 DataMemberAttribute属性でシリアル化されました。

保存したいクラスオブジェクトには、PhoneApplicationPageとUsercontrolsのオブジェクトもあります。だから私はこれを修正することができますか?

答えて

2

任意のC#オブジェクト型、特にSilverlight UIオブジェクトをシリアル化することはできません。これは設計によるものです。実際にUIを構築する際に必要な実際のデータをシリアル化して、ページが作成されたり(*)にナビゲートされたときに必要に応じてこのデータを取得する必要があります。

リンクされた例には、DataContractにUIElementsが含まれておらず、シリアル化可能な文字列だけです。

(*)このチュートリアルの第2部では、実際にこのような方法でデータを読み込む方法について説明します。

関連する問題