如何在没有程序集完全限定名称的情况下将对象存储在MongoDb中



我存储包含Dictionary等字段的项在mongo中,此字段具有_t=System.Collections.Generic.Dictionary `2[System.String,[Namespace.MyType,Namespace,Version=1.0.0.0,Culture=neutral,PublicKeyToken=89b48272fdae8cae]]

我不需要Version和PublicKeyToken,而且这会给下一版本的程序集带来麻烦如何使用类似System.Collections.Generic.Dictionary的_t属性存储数据`2[System.String,[Namespace.MyType]]?

类型鉴别器用于继承并将声明的类型解析为存储的类型。如果您有一个具有具体属性的具体类,则不需要鉴别器。

假设你在一个类上有一个属性:

public class Foo : MyBase{
   ...
   public string Title {get;set;}
}
public class Bar: MyBase{
   ...
   public string Title {get;set;}
}

驱动程序可能能够将IN映射到字符串数组并存储在mongodb中{_id:…,标题:"你好"}

然而,在离开的路上,驾驶员必须决定BSON阵列会变成什么样子。如果没有类型鉴别器,它是否应该生成一个实例:Foo?酒吧MyBase?

如果你有一个类有一个具体的字典而不是is-a字典,你可以避免很多这样的事情。

相关内容

最新更新