POCO [Serializable]を作成したいのですが、クラス階層ツリー内の他のクラスメンバーは作成しません。フィールドに対してのみ機能する[NonSerialized]があることは知っていますが、それらを除外したり、POCOの[Serializable]を使用して特定のメンバーを選択したりする方法はありますか?
1 に答える
あなたは見るべきですDataContractSerializer
; シリアル化には「オプトイン」アプローチを使用します。
また、例ととの比較については、XmlSerializerとDataContractSerializer:Wcfでのシリアル化を読むことをお勧めします。DataContractSerializer
XmlSerializer
XmlSerializerはバージョン1.0から.Netにあり、リモーティング、Webサービス、ファイルへのシリアル化など、あらゆることに役立ちました。ただし、.Net 3.0では、DataContractSerializerが登場しました。そして突然、多くのガイダンスが、古くから試された真のXmlSerializerよりもそれを使用する必要があることを示唆しています。Wcfは、これをシリアル化のデフォルトのメカニズムとしても使用します。問題は、「本当に良いのか」ということです。評決は「はい」と「いいえ」です。ほとんどのものと同様に、それはあなたの実装とあなたが必要とするものに依存します。Wcfの場合は、DataContractSerializerを使用することをお勧めします。ただし、xmlの外観を完全に制御する必要がある場合は、XmlSerializerに戻る必要があります。