2009-07-08 46 views
3

在我当前的项目中,我使用FxCop来处理各种代码分析警告。对于命名规则,我可以选择更改名称来匹配规则,或者决定保留当前的拼写并压制警告。关于标记为[Serializable]的类或属性,我对名称更改的影响感兴趣。特别是,如何影响现有序列化数据的向后兼容性?可序列化类和名称重构

回答

2

如果更改字段名需要读取更改之前连载旧数据,那么它可能会导致混乱。 BinaryFormatter主要是一个基于字段(名称)的序列化程序,它不会很高兴。只要没有外部代码引用它(并确保运行你的单元测试),更改属性和方法应该没问题。可行的选项:手动序列化(ISerializable)和序列化代理。很多痛苦。

如果您使用的是XmlSerializer/DataContractSerialializer,那么您可以将序列化名称单独命名为成员名称,这样很容易修复。

[XmlElement("Color")] // original spelling 
public string Colour {get;set;} // now with the correct spelling ;-p 
:和其他一些串行器完全不;-p

XmlSerializer例如使用名称