0

我存储的项目包含像字典这样的字段在 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`2[System.String,[Namespace.MyType]] 之类的 _t 属性存储数据?

4

1 回答 1

0

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

假设你有一个类的属性:

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

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

驱动程序可能能够将该 IN 映射到字符串数组并存储在 mongodb {_id: ..., Title: "Hello" }

但是,在 OUT 的路上,驱动程序必须决定 BSON 阵列将变成什么。如果没有类型鉴别器,它是否应该生成一个实例:Foo?酒吧?我的基地?

如果您有一个具有具体字典而不是字典的类,则可以避免很多这种情况。

于 2013-02-18T18:01:02.190 回答