我正在寻找一种方法来序列化包含一些只读属性的 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
不是一个很好的选择,因为结果是 abyte[]
,我想把它当作string
(我不想在反序列化我的对象时处理 Encondings 等)。
我真正想要的是一个能够序列化只读属性的 XmlSerializer 类。
你知道任何这样的实现吗?或者任何其他方便的解决方案?
谢谢!