當我使用C#驅動程序的MongoDB得到這個問題MongoDB的 - 實體序列確定,但給反序列化
我也有類似的問題,這個(V1.5)錯誤「未找到型串行」當序列化對象時,但始終能夠通過在應用程序啓動過程中使用mongodb註冊實體來解決此問題。它有一個反序列化問題的文檔嵌套在兩個深度級別(即文檔中嵌入的文檔嵌入在文檔中)。
的類是這樣的:
[BsonIgnoreExtraElements]
public class FooItem : IFooItem
{
[BsonId]
public ObjectId Id { get; set; }
public IFooAccessRestrictions AccessRestrictions { get; set; }
}
public class FooAccessRestrictions : IFooAccessRestrictions
{
[BsonId]
public ObjectId Id { get; set; }
public IAccessPermission[] AccessList { get; set; }
}
public class AccessPermission : IAccessPermission
{
[BsonId]
public ObjectId Id { get; set; }
public DateTimeOffset CreatedOn { get; set; }
public ObjectId CreatedBy { get; set; }
public AccessPermissionType Type { get; set; }
public string PermittedIdentity { get; set; }
public AccessPermission()
{
}
public AccessPermission(ObjectId createdBy, AccessPermissionType type, string permittedIdentity)
{
CreatedOn = DateTime.Now;
CreatedBy = createdBy;
Type = type;
PermittedIdentity = permittedIdentity;
}
}
這是它有問題,「發現類型沒有序列化」的AccessPermission類。我試着用MongoDB的註冊實體在應用程序啓動如下:
BsonClassMap.RegisterClassMap<FooAccessRestrictions>();
BsonClassMap.RegisterClassMap<AccessPermission>();
我猜我必須在這裏打破了一些MongoDB的規則,我不知道的。我希望我不需要爲此創建自定義序列化程序......據我所知,除了該文檔嵌套在兩層以外之外,我沒有做過以前沒有做過的任何事情。它正在創建文檔沒有任何問題,只是當我嘗試恢復文檔時,我遇到了問題。
任何幫助將不勝感激。
優秀問題 – solrevdev