我使用protobuf-net序列化了一个C#类。结果字节数组存储在数据库中。这是出于性能原因,我可能无法更改此设计。 C#语言不能防止类被修改,并且随着时间的推移传递用于反序列化的类结构可能需要更改与用于序列化的更改不匹配,从而导致检索失败。
除了提示here的包装技术之外,是否有处理此类问题的模式或技术?
答案 0 :(得分:0)
我想到的唯一一种技术是对需要反序列化的类进行版本化,以便在需要进行一些更改时不会丢失任何内容。序列化这些类的实例时,还必须序列化类的版本(它可能是类本身的一个字段)。
我认为这不是最佳解决方案,而是一种解决方案。 当变更(和版本)开始增长时,版本控制策略可能变得非常难以管理。