我的课程如下
public class ParentClass
{
public string Name { get; set; }
public object Item { get; set; } = new object();
public Department Dept { get; set; }
}
public class ChildClass
{
public string Location { get; set; }
}
public class Department
{
public string DeptName { get; set; }
}
我尝试传递数据并反序列化,如下所示
var obj = new ParentClass()
{
Name = "Charles",
Item = new ChildClass()
{
Location = "Chicago"
},
Dept = new Department()
{
DeptName = "IT"
}
};
var json = new JavaScriptSerializer().Serialize(obj);
var finalRes = new JavaScriptSerializer().Deserialize<ParentClass>(json);
我将ChildClass
赋给Item
属性,该属性的数据类型为object
。
ChildClass details
当我序列化它的时候,我有如下的数据Serialized data
反序列化时数据如下Deserialized data
在反序列化的数据中,获取Item
属性详细信息作为Dictionary
值,而不是ChildClass
类型。
如何避免在反序列化时将object
数据类型转换为Dictionary
。
我想将给定类型ChildClass
分配给object
属性Item
,即使在反序列化之后也是如此
1条答案
按热度按时间mm9b1k5b1#
使用Newtonsoft和TypeNameHandling可以执行以下操作:
如果仅仅使用JavaScriptSerializer uou就可以使用SimpleTypeResolver那么你的代码可能是这样的: