一旦设置了初始值,我就有几个不可变的类.Eric Lippert称之为一次性写入不可变性.
在C#中实现一次写入不变性通常意味着通过构造函数设置初始值.这些值初始化只读字段.
但是,如果需要使用XmlSerializer或DataContractSerializer将类似这样的类序列化为XML,则必须具有无参数构造函数.
有没有人建议如何解决这个问题?是否有其他形式的不变性可以更好地与序列化?
编辑:正如@Todd所指出的,DataContractSerializer不需要无参数构造函数.根据MSDN上的DataContractSerializer文档,DataContractSerializer"不会调用目标对象的构造函数."