私はXNA 3でゲームを構築しており、レベルはXML形式で保存されています。これらのXMLファイルをレベルオブジェクトにデシリアライズするにはどのようなソリューションをお勧めしますか?それはXboxで動作する必要があります。XML XNAオブジェクトの逆シリアル化
答えて
実際のレベルをシリアライズすることをお勧めしません。そこからレベルオブジェクトを構築するための情報を含む単純なコンテナクラスを作成するだけです。これはいい、きれいなXMLになります
[Serializable()]
public class LevelDefinition
{
public Vector3 PlayerStartPosition { get; set; }
public string LevelName { get; set; }
public List<Enemy> Enemies { get; set; }
... etc
}
:よう
何か。
そして、XmlSerializer
クラスを使用して逆シリアル化してください。
私は360で試したわけではありませんが、XmlSerializerはオブジェクトグラフをXMLに保存/ロードする簡単な方法です。基本的には、xmlファイルを取り出してxsd.exeを実行します。これは、あなたのXMLを非直列化できるC#クラスのセットを生成します。あなたのコードでは、次のようなコードを書くでしょう:
var serializer = new XmlSerializer(typeof(LevelType));
var level = (LevelType)serializer.Deserialize(streamToYourLevel);
すべてが完了しました。
これは機能する可能性があります。私はチャンスがあるときにそれを試してみるでしょう。ありがとう! – RCIX
私はバイナリシリアル化がZuneとXBoxでは利用可能だとは思っていませんが、XmlSerializerはうまく動作します。コレクションのシリアライズに問題はありませんが、ArrayListのような型なしコレクションにはXmlArrayItem属性を使用するか、XmlSerializerコンストラクタにadditonal型情報を渡す必要がありますが、最近Listを使用する方がより簡単で簡単です。ディクショナリは直列化できませんが、そのためのラッパークラスを作成できます。私は通常、各項目に一意のIDを格納し、それを辞書のキーとして使用することができます。 次に、辞書をラップしてアイテムのコレクションとして公開するクラスを作成できます。
public class MyItem {
public string ID { get; set; }
:
}
public class MyList : ICollection<MyItem> {
private Dictionary<string,MyItem> items;
public MyList() {
items = new Dictionary<string, MyItem>();
}
void Add(MyItem item) {
items.Add(item.ID, item);
}
:
}
- 1. インタフェースへのXMLオブジェクトの逆シリアル化
- 2. MSMQ複合オブジェクトのシリアル化/逆シリアル化
- 3. Linq to XML - オブジェクトに逆シリアル化する
- 4. XNA-Silverlight WP7プロジェクトのXMLコンテンツを逆シリアル化できません
- 5. C++でのXMLシリアル化/逆シリアル化
- 6. C#Xmlシリアル化と逆シリアル化
- 7. DateTime XMLの逆シリアル化
- 8. 逆シリアル化の逆シリアル化
- 9. XML逆シリアル化C#配列
- 10. XML逆シリアル化(問題)
- 11. Xmlシリアル化オブジェクト(HttpBrowserCapabilities)
- 12. XMLをオブジェクトに逆シリアル化するときのクラスのデフォルトプロパティ
- 13. C#オブジェクトへのXML文字列の逆シリアル化
- 14. クラス内のXMLの逆シリアル化
- 15. データメンバの順序とXMLの逆シリアル化
- 16. Windows PhoneでのXMLの逆シリアル化
- 17. オブジェクトへのxml応答を逆シリアル化する方法
- 18. 複数のxmlファイルをオブジェクトに逆シリアル化する
- 19. 複数のカスタムオブジェクトをXMLにシリアル化および逆シリアル化
- 20. 再帰的なXMLの逆シリアル化
- 21. XMLの逆シリアル化に失敗する
- 22. 逆シリアル化のXML要素が
- 23. 逆シリアル化のカスタムXMLデータ型は
- 24. C#オブジェクトに受け取ったxmlを逆シリアル化します。
- 25. xmlをSymfony2でオブジェクトに逆シリアル化する
- 26. 動的にオブジェクトをXMLに逆シリアル化する
- 27. T-SQLでXMLオブジェクトを逆シリアル化する
- 28. Javascript Canvasシリアル化/逆シリアル化?
- 29. WPF BitmapImageシリアル化/逆シリアル化
- 30. Android HashMapシリアル化/逆シリアル化
私はそれに行きます。良いアイデア! – RCIX
私は時には、時々物事、特にコレクションをシリアライズするときにいくつかの問題を抱えてきました。これが起こった場合は、バイナリのシリアル化にマークすることができます – jasonh