有没有办法将Json.Net反序列化与不可变类一起使用?

我正在使用一个使用json的API。 我有一些我为API建模而创建的类。 为了简化生活,我的模型使用公共属性,当将json反序列化为对象时,Json.Net将使用这些属性。

我想让我的对象不可变,但我遇到了一个问题,因为如果我将我的属性设为只读,我就会破坏反序列化。 有没有办法让我拥有不可变对象,并使用反序列化?

我认为你应该能够使用JsonConstructorAttribute 。 请参阅此问题以获取示例。

提供具有与属性对应的参数的构造函数。 参数和属性的第一个字母的大小写不需要匹配。