C# 数据协定序列化和前后兼容
在一个C#项目中,我在一个复杂实体的web api中使用数据契约序列化。 在创建或更改可序列化类型时,哪种策略是保持向后和向前兼容性的好策略?C# 数据协定序列化和前后兼容,c#,wcf,asp.net-web-api,C#,Wcf,Asp.net Web Api,在一个C#项目中,我在一个复杂实体的web api中使用数据契约序列化。 在创建或更改可序列化类型时,哪种策略是保持向后和向前兼容性的好策略? 例如,我可以添加一些新属性或更改一些字段名。记住一些事情会有所帮助,这些对于任何语言的任何序列化都是通用的: 从长度开始,这样代码就可以始终获得记录,即使它不理解所有记录 包括格式的版本号-这样,如果您必须破坏兼容性,您可以优雅地处理它 总是在结尾处扩展枚举-绝对/强>在开始或中间。 仅在末尾添加新字段 如果必须有任何可变长度字段,则将长度单独存储在字段
例如,我可以添加一些新属性或更改一些字段名。记住一些事情会有所帮助,这些对于任何语言的任何序列化都是通用的:
添加一些特定于C#/VB/.Net的链接,以保留OPs注释中的链接-&-注意,这些链接受MSDN的影响,因此可能会消失或移动。谢谢。有了你的解释,我发现这正是我所需要的。