我正在使用MongoDB(.NET驱动程序1.10)来存储我的C#类,它有一个弱类型的字段:
public class SomeClass : ...
{
...
public object Value { get; set; }
}
默认情况下,如果Value包含一个数组,则该类将使用非常长的鉴别器序列化到文档:
{
...
"Value" : {
"_t" : "SomeSolution.Domain.SomeSubdomain.SomeFolder.SomeSubfolder.SpecialValueClass[], SomeSolution.Domain",
"_v" : [
{
...
},
{
...
},
...
]
}
}
但我想只使用“SpecialValueClass []”鉴别器字符串(或更短)。
我尝试像这样配置映射:
BsonClassMap.RegisterClassMap<SpecialValueClass>();
BsonClassMap.RegisterClassMap<SpecialValueClass[]>(
cm =>
{
cm.AutoMap();
cm.SetDiscriminator("SpecialValueClass[]");
});
这对数组类型,通用列表没有影响(但适用于solutuion定义的类型)。
如何告诉mongodb驱动程序为我的数组类型使用自定义鉴别器?我更喜欢不使用包装类,也不使用序列化属性。或者为什么驱动程序会忽略我的配置?