3
在我当前的项目中,我使用FxCop来处理各种代码分析警告。对于命名规则,我可以选择更改名称来匹配规则,或者决定保留当前的拼写并压制警告。关于标记为[Serializable]
的类或属性,我对名称更改的影响感兴趣。特别是,如何影响现有序列化数据的向后兼容性?可序列化类和名称重构
在我当前的项目中,我使用FxCop来处理各种代码分析警告。对于命名规则,我可以选择更改名称来匹配规则,或者决定保留当前的拼写并压制警告。关于标记为[Serializable]
的类或属性,我对名称更改的影响感兴趣。特别是,如何影响现有序列化数据的向后兼容性?可序列化类和名称重构
如果更改字段名和需要读取更改之前连载旧数据,那么它可能会导致混乱。 BinaryFormatter
主要是一个基于字段(名称)的序列化程序,它不会很高兴。只要没有外部代码引用它(并确保运行你的单元测试),更改属性和方法应该没问题。可行的选项:手动序列化(ISerializable
)和序列化代理。很多痛苦。
如果您使用的是XmlSerializer
/DataContractSerialializer
,那么您可以将序列化名称单独命名为成员名称,这样很容易修复。
[XmlElement("Color")] // original spelling
public string Colour {get;set;} // now with the correct spelling ;-p
:和其他一些串行器完全不;-p
XmlSerializer
例如使用名称