处理在couchbase中的版本控制

时间:2013-05-01 23:09:39

标签: c# couchbase

我的问题是,我从这样的课开始:

public class MyType {
    public string PropertyOne { get; set; }
    public string PropertyTwo { get; set; }
}

然后我使用客户端库将其存储在couchbase上,例如:

var client = new CouchbaseClient("mybucket");
var instance = new MyType()
{
    PropertyOne = "1",
    PropertyTwo = "2"
};

var key = "MyType_" + Guid.NewGuid();

client.ExecuteStore(StoreMode.Set, key, instance);

但是我需要重构我的类型,从而更改签名:

public class MyType {
    public string Property1 { get; set; }
    public string Property2 { get; set; }
}

因此,当我尝试反序列化旧数据(更改前)和使用新签名的新数据时出现问题:

var oldSignatureVersion = clientB.Get<MyType>("MyType_maybe_signature_1_or_2");
var newSignatureVersion = clientB.Get<MyType>("MyType_maybe_signature_1_or_2");

我不知道如何在不使代码变得非常难看的情况下解决这个问题,这里最好的方法是什么?

由于

0 个答案:

没有答案