为什么不需要使用ServiceStack Json Serializer从json字符串反序列化的对象的构造函数

Mat*_*olf 0 c# serialization constructor servicestack servicestack-text

我想知道为什么不需要构造函数将json字符串反序列化为.Net / C#类对象实例。令我惊讶的是,根本没有调用构造函数并将其删除,并且反序列化器仍从json字符串创建了一个对象实例。这正常吗?

(我使用ServiceStack的json序列化器)

小智 5

德国人的回答并不完全正确。可以实例化没有默认构造函数的对象,而无需执行任何构造函数。

这是通过完成的FormatterServices.GetUninitializedObject

如果ServiceStack找不到默认的构造函数,则使用此方法,因此它可以反序列化没有默认构造函数的对象。