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

Gre*_*egB 30 c# immutability json.net

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

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

Mat*_*hen 17

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

  • 如果只有一个构造函数,则不需要`JsonConstructorAttribute`. (3认同)

Edw*_*rey 14

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