在MongoDB和JSON.NET中反序列化抽象类型

时间:2013-09-30 04:23:39

标签: c# .net mongodb serialization json.net

我有一个类似下面的课程。

public abstract class Employee
{
   public abstract string EmployeeType {get;}
}

public class Engineer: Employee
{
   public override string EmployeeType 
   { 
      get
      {
         return "engineer";
      } 
   }    
}

我有另一个班级,里面有员工名单,可以有不同类型的员工(工程师,经理等)。这个类很好地序列化到我的Mongo数据库中。但是,对于反序列化,如何指定deseralizer以根据EmployeeType字符串将Employee记录反序列化为Engineer或Manager对象。如何将此指定给MongoDB反序列化器(用于数据库层)和JSON.NET反序列化器(用于中间层)?

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是使用mongo类型鉴别器。这是一篇很好的文章:

http://mycodeonline.com/peterkneale/blog/mongo-type-discriminators

希望它有所帮助!