我存储包含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字典,你可以避免很多这样的事情。