publicinterfaceIPerson{string Name {get;set;}}publicclassPerson:IPerson{publicstring Name {get;set;}publicTest Test {get;set;}=newTest();}publicclassTest{publicstring AA {get;set;}="AA";publicstring BB {get;set;}="BB";}publicclassStudent:Person{publicstring Lesson {get;set;}}publicclassTeacher:Person{publicint Age {get;set;}}
2. 类图
3. 直接序列化与反序列化
voidMain(){
List<Person> list =newList<UserQuery.Person>();
list.Add(newPerson(){ Name ="zhangsan"});
list.Add(newStudent(){ Name ="lisi", Lesson ="123"});
list.Add(newTeacher(){ Name ="wangwu", Age =33});var settings =newJsonSerializerSettings{
Formatting = Newtonsoft.Json.Formatting.Indented,
NullValueHandling = NullValueHandling.Include,
MissingMemberHandling = MissingMemberHandling.Ignore
};var strJson = Newtonsoft.Json.JsonConvert.SerializeObject(list, settings);
strJson.Dump();MethodOne(strJson);}privatevoidMethodOne(string strJson){var settings =newJsonSerializerSettings{
Formatting = Newtonsoft.Json.Formatting.Indented,
NullValueHandling = NullValueHandling.Include,
MissingMemberHandling = MissingMemberHandling.Ignore
};var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Person>>(strJson, settings);
list.Dump();}