3

私は C# WPF .NET 4.0 でゲームをコーディングしていましたが、それを WinRT に移植して Metro アプリにしようとしています。

シリアル化がわかりません。クラスを [serializable()] でマークしてディスクに保存する前に。

これまでに DataContracts と xmlserialization を見つけましたが、クラスをシリアル化してディスクに書き込むにはどうすればよいですか?

クラス内のすべてのプロパティを属性でマークする必要がありますか?助けてください

4

1 に答える 1

1

ではXmlSerializer、そうではありません。実際、多くの場合、何もマークする必要はありません。ただし、属性を追加すると、最終的な xml をより詳細に制御できます。

では、および属性DataContractSerializerを追加することをお勧めします。同じタイプのコントロールは得られませんが、非常にうまく機能します。[DataContract][DataMember]

2 つの機能は次のように異なります。

  • DCS はコンストラクターを使用しません - XS は public パラメーターなしのコンストラクターを使用します
  • DCS はシリアライゼーション コールバックをサポートします (XS はサポートしません)。
  • XS は条件付きシリアル化をサポートします (DCS はサポートしません)。

また、最近 WinRT をサポートし、他の 2 つよりも出力が小さく、はるかに高速な protobuf-net を検討することもできます (新しいプリコンパイラを使用する場合)。DCS と XS を組み合わせたほとんどすべての機能とオプションをサポートしていますが、高速なバイナリのクロスプラットフォーム出力を備えています。

于 2012-08-16T21:40:12.150 に答える