2009-06-18 8 views
4

私はPOCO [Serializable]を作成したいが、クラス階層ツリーには他のクラスメンバーを作成したくない。フィールドのためだけに機能する[NonSerialized]があることは知っていますが、それらを除外する方法やPOCOの[Serializable]を使って特定のメンバーを選択する方法はありますか?クラスメンバーを除くPOCOをシリアライズ

答えて

4

DataContractSerializerをご覧ください。シリアライズへの「オプトイン」アプローチを採用しています。

また、DataContractSerializerXmlSerializerの比較と比較のためにXmlSerializer vs DataContractSerializer: Serialization in Wcfを読むことをお勧めします。 XmlSerializerをを DataContractSerializerが登場.NET 3.0にただし など、バージョン1.0以降の.Net になっているとリモーティングからのすべてのためにも私たちを 務めている、ウェブ サービス、ファイルにシリアライズ

。 突然多くの手引き は、それを古くて真実なXmlSerializerの よりも使用しなければならないことを示唆しています。 Wcfはこれをデフォルトの メカニズムとしてシリアル化に使用します。 質問は、「それは本当に良いですか?」です。 判決はイエス・ノーです。ほとんど のように、 の実装と必要なものによって異なります。 Wcfの場合は、 DataContractSerializerを使用することをお勧めします。しかし、 xmlの表示方法を完全に制御する必要がある場合は XmlSerializerに戻ってください。

+0

(私は私を削除しました) - 追加するだけで(OP用):厳密なバイナリのシリアル化が必要な場合は、protobuf-netを検討してください。 –

+0

@Marc - protobuf-netもいい選択です。あなたの答えを元に戻すなら、私はそれをupvoteします。 –

関連する問題