我目前正在开发一个应用程序,当我向前(一个学习像RavenDB这样的东西的小型项目)更改文档时,这个应用程序很多。某些更改不会向后兼容,这会导致在尝试获取文档时发生JSON反序列化失败。RavenDB:将文档属性转换为另一种类型
在反序列化过程中,我是否有某种方式将属性从旧类型转换为新类型?我使用Raven.Client.Lightweight
作为客户端库。
例子:
我有一个名为AllProperties
在一类是Dictionary<string,string>
属性。我将字典的类型更改为名为MetadataItemCollection
的类。
这是真正做你正在尝试的正确方法吗?换句话说,您是不是应遵循SOLID的第二条规则,即“打开关闭原则”,其中模块可以进行扩展,但对于修改是封闭的?如果你正在改变属性名称,那么也许你应该从头开始删除文档并重新创建,然后一旦你的核心结构是稳定的实现接口允许扩展?思考? – Jethro
@Jehtro:你认真吗? – jgauffin