いくつかの読み取り専用プロパティを含む POCO をシリアル化する方法を探しています。いくつかの Google および StackOverflow の検索で、次の提案を見ました。
- DataContractSerializerを使用します。また
- SoapFormatterまたはBinaryFormatterを使用します。また
- 読み取り専用プロパティを読み取り/書き込みプロパティに置き換えます。
私のクラスは非常に単純で、次のようになります。
public class MyClass
{
public int Id { get; private set; }
public string Name { get; private set; }
public MyClass(int id, string name)
{
Id = id;
Name = name;
}
}
そう、
- プロパティを読み取り/書き込みにしたくありません。それらが読み取り専用である場合、それは私のドメイン モデルが読み取り専用プロパティを要求するためです。このためだけにドメイン モデルを変更することはできません。
- を使用したくありません
DataContractSerializer
。シリアライゼーション関連のものでドメイン モデルが汚染されるからです。 BinaryFormatter
byte[]
結果が aであるため、あまり良いオプションではstring
ありません.
私が本当に欲しいのは、読み取り専用プロパティをシリアル化できる XmlSerializer クラスです。
そのような実装を知っていますか?または他の便利なソリューションはありますか?
ありがとう!