2012-05-06 7 views
0

私のゲームの状態を独立したストレージにシリアル化するために.net XmlSerializerクラスを使用しています。
これにより、膨大な数の属性でコードを掘り下げることを避けることができます。私のクラスのリストをWindows PhoneのIsolated Storageにシリアライズ

私は公開データの私の構造体のリストをシリアル化しようとするたびに、私は例外を取得:
私はどのように修正すればよい

を「型GameState_test.Planetのオブジェクトをシリアル化しながら、循環参照が検出されました」この?私はたくさんの答えを研究しましたが、WP7に関係するものはありません。

public class Hazard { public Planet CurrentPlanet;} //reference to the planet its on 

public struct Inventory 
{ 
    public Inventory(int coins = 0, int arrows = 0) { Coins = coins; Arrows = arrows; } 

    public int Coins; 
    public int Arrows; 
} 

public class Planet 
    { 
     public Inventory Inventory; 
     internal readonly int Index;    
     internal readonly List<int> Connections; 
     public Hazard pHazard; //hazard currently on planet 
    } 
+2

例外は何ですか?**正確に**などですか? (また、しかし、マイナー:クラスの意図された目的をサポートする属性(DTOのシリアライゼーション)はコードを "掘り下げ"ますか?) –

+1

これはinvalidOperationExceptionでした。シリアライゼーションの – Griffin

+0

内部例外を含む例外メッセージ全体を送信してください。 –

答えて

1

使用しているシリアライザは、循環参照のシリアル化をサポートしていません。 DataContractシリアライザ(System.Runtime.Serialization)に切り替えて、このガイドに従ってください:http://blogs.msdn.com/b/sowmy/archive/2006/03/26/561188.aspx
またはそれをサポートするサードパーティシリアライザを使用してください。

関連する問題