अंत में मुझे दिनांक फ़ील्ड के लिए एक कस्टम धारावाहिक का उपयोग करके एक समाधान मिला है। यह इस तरह दिखता है।
मेरी कक्षा:
[BsonIgnoreExtraElements]
public class Tweet
{
public ObjectId Id { get; set; }
[BsonElement("text")]
public string Texto { get; set; }
[BsonElement("created_at")]
[BsonSerializer(typeof(FechaTweetsSerializer))]
public DateTime Fecha { get; set; }
}
और मेरा कस्टम सीरिएलाइज़र:
public class FechaTweetsSerializer : SerializerBase<DateTime>
{
public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, DateTime value)
{
context.Writer.WriteString(value.ToString(CultureInfo.InvariantCulture));
}
public override DateTime Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
{
var fecha = context.Reader.ReadString();
return ConvertirFecha(fecha);
}
private DateTime ConvertirFecha(string fechaFormatoTwitter)
{
var formato = "ddd MMM dd HH:mm:ss zzzz yyyy"; //'Sun Oct 23 19:42:04 +0000 2016'
var enUS = new CultureInfo("en-US");
var fechaConvertida = DateTime.ParseExact(fechaFormatoTwitter, formato, enUS, DateTimeStyles.None);
return fechaConvertida;
}
}
आशा है कि यह किसी की मदद करेगा।