我有一个WEB API Web服务,它接受我想要存储为MongoDB文档中的属性的任意Object
。当我的类库得到它时,它是JObject
,所以简单地存储它包括各种额外的残余。我是mongo的新手,我唯一可以理解的解决方法是创建BsonValue
类型的属性,并编写以下一些hackery来创建它:
private static BsonValue ToBsonValue(object value)
{
var jobject = value as Newtonsoft.Json.Linq.JContainer;
if (jobject != null)
{
return BsonDocument.Parse("{crazyHack: " + jobject.ToString() + "}")[0];
}
else
{
return BsonValue.Create(value);
}
}
检索该值时,我会将其转换回Object
BsonTypeMapper.MapToDotNetValue
。
我无法想象没有更简单的方法可以做到这一点,但JContainer
似乎没有任何方法可以生成普通的object
本身不是JContainer
。任何提示将不胜感激。