IBsonSerializer
또는 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
를 사용하여 등록 할 수 있습니다.
사람들이 코멘트없이을 downvoted 왜 MongoDB를 C# Bson 직렬화의
전체 문서는 here
을 찾을 수 있습니다 ? 그렇다면 내 질문에 어떤 문제가 있는지 어떻게 알 수 있습니까? – kvuong