爲Expando對象的反序列化我在蒙戈-C#環境和使用10gen的蒙戈驅動程序。我面臨當我嘗試反序列化蒙戈文檔中的數據時,它有一個子文件和子文件不是強類型的問題。換句話說,如果子文檔是在Expando或只是一個匿名對象(),那麼它給出錯誤的同時,出現以下錯誤反序列化:在蒙戈
System.IO.FileFormatException: A document being deserialized to System.Object must be empty.
我們,我可以前後蒙戈讀放一個過濾器/寫一個我的對象轉換爲上飛一個BSONDocument但我認爲BSOnDocument和(或Expando的匿名類型)之間沒有投用。
寫一個自定義的反序列化工具聽起來像太多的工作。我只是想知道以前有人遇到過這個問題,他們是如何處理這個問題的?
我可以在這裏看到您的要點。但我的問題在於,我對模塊的輸入基本上是一個expando對象,輸出也希望處理一個expando。在這種情況下,即使我最終節省蒙戈一個BSON文件,我需要弄清楚從蒙戈以BSON反之亦然..... – TeaLeave
鑄造機制。如果你總是使用expandos的,那麼你就可以創建自定義IBsonSerializer處理與Expando的轉換。你可以使用db.GetCollection(「name」)來讓它們進出。由於Expando實現了IDictionary ,因此您可以簡單地將您的方法內部推遲到DictionaryGenericSerializer。在master中實際上是一些代碼,它已經這樣做了(關於IDictionary ,所以你不需要這個)。在此之前... –
試圖做到這一點給我follwing錯誤:'元素_id'不匹配類System.Dynamic.ExpandoObject的任何字段或屬性。' – TeaLeave