处理反序列化类之外的额外元素

时间:2015-03-12 10:16:59

标签: mongodb-.net-driver

在类中添加额外的元素属性以支持向后/向前兼容性并实现ISupportInitialize对我来说似乎很难看,它也是OCP违规。 我想处理反序列化类之外的额外元素,并在外部类中运行一些迁移逻辑。 我的意思是Bson序列化程序会将更多的元素数据放在反序列化类的某个地方,而不是在完成所有反序列化后,工作人员会调用一些迁移器来处理加载的对象。 这样我就可以支持获取的文档(可能是旧版本或最新版本)与当前正在运行的代码之间的兼容性。

类似的东西:

public interface IMigrate<T>
{
    void Migrate(T obj, BsonDocument extraElements)
}

public class MigrateClazzA : IMigrate<ClazzA>
{
    public void Migrate(ClazzA obj, BsonDocument extraElements)
    {
       ...
    }
}

我该怎么办?

0 个答案:

没有答案