因此,我有一些BSON数据存储在包含.NET类型信息的数据库记录中(这是必需的,因为某些属性是接口,因此需要包含具体类型)。一切都很好,但是现在我不得不重新排列一些代码,以使一些类移到了不同的命名空间中。因此,例如:
class MyClass
{
public IFoo { get; set; }
}
最初通过IFoo
的具体实现进行了序列化:
MyNameSpace.Foo
但是现在:
SomeOtherNameSpace.Foo
类Foo
两种方式都是相同的(尽管它可能具有一些嵌套属性,但它们也已更改)。
这对于新数据不是问题,但是我需要找到一种转换旧数据的方法。问题是我目前无法反序列化旧数据,因为它已经移动了,所以找不到相关的类。所以我想知道是否有一种方法可以更改保存在BSON中的类型信息而无需反序列化它?我在想,即使我可以将BSON转换为JSON,也可以使用一些简单的字符串替换来编辑JSON(例如,将MyNameSpace
替换为SomeOtherNameSpace
),然后再转换回BSON并更新数据库记录。 JSON.Net有可能吗?我可以接受BSON,转换为JSON(不需要类反序列化),编辑JSON,然后再转换回BSON(使用现在更新的类型信息)吗?
答案 0 :(得分:0)
要回答我自己的问题,这似乎是一种可能的解决方案:
// I have some field
{
xtype: 'textfield',
maskRe: /[0-9.]/,
vtype: 'imei',
fieldLabel: 'IMEI:',
name: 'imei',
flex: 1
}
// validation for textfield on keypress
imei: function (v) {
return v.length < 16;
},
imeiText: 'length more then 15 symbols is not recommended'
// validation on save button click
validateForm: function (form) {
if (!form.isValid()) {
// don't save form
}// can't save form because imei is not valid
}
这有点混乱,但是除非有一种更干净的方法来解决这个问题,否则它可能会紧要关头?