हां, आपको JObject
. के बीच रूपांतरण को स्पष्ट रूप से लागू करने की आवश्यकता है और BsonDocument
प्रकार। आप अपने स्वयं के कनवर्टर को लागू कर सकते हैं और अपनी सी # प्रकार की संरचना को पार करने से बचने के लिए विशेषताओं का उपयोग कर सकते हैं। कोशिश करें:
public class Detail
{
[BsonSerializer(typeof(DynamicSerializer))]
public dynamic Value { get; set; }
}
public class DynamicSerializer : SerializerBase<dynamic>
{
public override dynamic Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
{
var myBSONDoc = BsonDocumentSerializer.Instance.Deserialize(context);
return (dynamic)JObject.Parse(context.ToString());
}
public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, dynamic value)
{
var bson = MongoDB.Bson.BsonDocument.Parse(value.ToString());
BsonDocumentSerializer.Instance.Serialize(context, args, bson);
}
}