如何使JavaScriptSerializer在反序列化后自动调用构造函数/方法/任何东西来初始化值
本文关键字:任何东 方法 初始化 构造函数 调用 JavaScriptSerializer 何使 反序列化 | 更新日期: 2023-09-27 17:59:00
我在玩JSON和。NetJavascriptSerializer,到目前为止一切看起来都很好,很有趣,这是我的代码:
JavaScriptSerializer serializer = new JavaScriptSerializer();
myObject = serializer.Deserialize<MyObject>(myJsonString);
现在,我想更进一步,执行一些初始化,比如在使用反序列化创建MyObject之后,在其内部设置一些值。我尝试过向MyObject类public MyObject()
添加一个无参数构造函数,并在那里设置值,但它似乎不会自动调用。
在反序列化之后,如何调用某些初始化方法/构造函数?请注意,我只想使用JavascriptSerializer(这是我现在正在学习的),不想使用datacontractserializer或其他json库或外部dll。感谢阅读!
从JavaScriptSerializer.Deserialize<T>
,我不知道构造函数是如何被调用的。
然而,有一种方法JavaScriptSerializer.RegisterConverters
,它允许自定义转换器,您可以在其中进行自己的初始化
备注
您可以使用RegisterConverters方法向JavaScriptSerializer实例注册一个或多个自定义转换器。注册自定义转换器时,JavaScriptSerializer使用转换器来序列化托管类型,并将JSON字符串反序列化为托管类型。
和来自JavaScriptConverter
备注
JavaScriptConverter类使您能够为JavaScriptSerializer类本机不支持的托管类型实现序列化和反序列化过程。当您需要对序列化和反序列化过程进行更多控制时,也可以使用JavaScriptConverter。
唯一的其他方法是手动调用某个initialization()
方法。