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

时间:2012-01-31 19:30:18

标签: c# json.net immutability

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

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

2 个答案:

答案 0 :(得分:16)

我认为您应该可以使用JsonConstructorAttribute。有关示例,请参阅this question

答案 1 :(得分:14)

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