[英]Serializing arrays as documents in MongoDB C# driver
我有一个实现ICollection<T>
接口的类:
class Test : ICollection<string>
{
[BsonElement("items")]
private List<string> _items;
[BsonElement("someOtherProp")]
public bool SomeOtherProperty { get; set; }
// ...ICollection<string> impl
}
默认情况下,使用ArraySerializer
类对其进行(反)序列化,因此将忽略任何其他属性或字段(即使是public或由BsonElement
属性修饰)。
有谁知道我该如何强制将我的课程反序列化为常规课程?
好的,看来我找到了解决方案。 您可以在应用程序启动时执行此操作:
BsonSerializer.RegisterSerializer(
typeof(Test),
new BsonClassMapSerializer(BsonClassMap.LookupClassMap(typeof(Test))));
我不确定,但是它可能与BsonClassMap.RegisterClassMap(...)
方法调用冲突(即方法调用顺序可能很重要)-我没有检查出来。 请注意,此类注册对于整个应用程序域都是全局的。 如果不合适,事情会变得有些棘手,因为您不能仅使用BsonClassMapSerializer
属性来装饰类属性。 但这是我停止我的小研究的地方,因为我实现了我的目标。
我希望有人会对此答案有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.