我有一個類可以作爲BsonDocument
序列化到MongoDB中,這個類也碰巧有IMyInterface
類型的屬性。將類型信息傳遞給MongoDB,以便它可以正確地反序列化接口類型?
public interface IMyInterface
{
String Name { get; set; }
}
public class MyClass
{
public IMyInterface IntRef { get; set; }
}
在一個MyClass
對象實例壽命IntRef
可以引用實施IMyInterface
多個不同的類。在序列化後,我發現IntRef
指向的所有類別的數據也在BsonDocument
中序列化,而不僅僅是Name
。
儘管反序列化雖然BsonDocument.Deserialize
沒有關於IntRef
指向的類的信息並引發異常。 如何向Deserialize
撥打電話Type
?
我也有一個天真的工作,我Deserialize
文件的部分是IntRef
,它運作良好。鑑於適當的類Type
,BsonDocument.Deserialize
返回該Type
的對象實例。雖然這裏的問題是我仍然不能Deserialize
頂級BsonDocument
代表MyClass
,因爲它仍然持有有關IntRef
的子文檔。 有沒有辦法告訴Deserialize
忽略BsonDocument
的一部分?我的想法是隻設置MyBsonDocument[SubDocName] = null
雖然它不可空。
我自己對Mongo和BsonDocument的經驗有限,但由於您沒有迴應,您是否看到[此SO問題](http://stackoverflow.com/questions/29241788/ignoring-properties-inside-composite - 特性與 - bsonignore)? – Crowcoder
嗯。我猜想它很接近,儘管這是爲了不序列化對象的某個部分,而不是反序列化它。雖然......我認爲'ClassMap'可能是答案的一部分。我將不得不考慮它,我從來沒有見過。 – KDecker