2016-10-21 27 views
2

我使用標準序列化提供程序在Mongo DB中存儲DateTimeOffsetMongoDB C#DateTimeOffset序列化

在數據庫中,它看起來是這樣的:

{ 
    "_id" : LUUID("1197f7cf-cb83-4047-85f8-6e9f8c8ad24f"), 
    "CreatedDateTimeUtc" : [ 
     6.3612613922066e+017.0, 
     0 
    ] 
} 

但是當我嘗試和反序列化在C#以下異常被拋出:

System.FormatException:反序列化的CreatedDateTimeUtc出錯Turnout.Common.Model.Turnout類的屬性:ReadInt64只能在CurrentBsonType爲Int64時調用,而不能在CurrentBsonType爲Double時調用。

有關如何使它發揮很好的任何想法?

+0

你能提供你用來執行這種反序列化的代碼嗎?你是否也可以提供C#模型,如果它是強類型的,因爲你的屬性可能沒有必要的屬性。 – pieperu

回答

0

如果您仍然遇到此問題,請編寫您自己的序列化程序。查看DateTimeOffsetSerializer的MongoDB.Bson.Serialization.Serializers瞭解實現細節。因爲它包含一個可讀的日期時間,我實際上使用它來代替默認值。 註冊這樣說:

new BsonStaticsWrapper().RegisterSerializer(typeof(DateTimeOffset), new DateTimeOffsetSerializer(BsonType.Document)); 

我知道這是不是確切的回答你的問題,但它可能會幫助你得到它。它可能會幫助其他人找到解決方法。

相關問題