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

时间:2013-02-18 08:09:04

标签: mongodb mongodb-.net-driver

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

我不需要Version和PublicKeyToken,这对于下一版本的程序集来说是一个麻烦 如何使用_t属性存储数据,如System.Collections.Generic.Dictionary`2 [System.String,[Namespace.MyType]]?

1 个答案:

答案 0 :(得分:0)

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

假设你在课堂上有一个属性:

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

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

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

在OUT的路上,驱动程序必须决定BSON阵列会变成什么样。没有类型鉴别器,它应该生成一个实例:Foo?酒吧? MyBase?

如果你有一个具有一个具体字典而不是一个字典的类,你可以避免这么做。