आपको एक IBsonSerializer
create बनाना होगा या SerializerBase<>
और इसे उस प्रॉपर्टी में संलग्न करें जिसे आप BsonSerializerAttribute
का उपयोग करके क्रमबद्ध करना चाहते हैं . कुछ इस तरह:
public class BsonStringNumericSerializer : SerializerBase<double>
{
public override double Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
{
var type = context.Reader.GetCurrentBsonType();
if (type == BsonType.String)
{
var s = context.Reader.ReadString();
if (s.Equals("N/A", StringComparison.InvariantCultureIgnoreCase))
{
return 0.0;
}
else
{
return double.Parse(s);
}
}
else if (type == BsonType.Double)
{
return context.Reader.ReadDouble();
}
// Add any other types you need to handle
else
{
return 0.0;
}
}
}
public class YourClass
{
[BsonSerializer(typeof(BsonStringNumericSerializer))]
public double YourDouble { get; set; }
}
यदि आप विशेषताओं का उपयोग नहीं करना चाहते हैं तो आप एक IBsonSerializationProvider
. बना सकते हैं और इसे BsonSerializer.RegisterSerializationProvider
. का उपयोग करके पंजीकृत करें ।
MongoDB C# Bson क्रमांकन का पूर्ण प्रलेखन यहां पाया जा सकता है