【发布时间】:2012-01-31 19:30:17
【问题描述】:
我正在使用一个使用 json 的 API。我创建了一些类来为 API 建模。为了让生活更轻松,我的模型使用公共属性,而 Json.Net 在将 json 反序列化为对象时会使用这些属性。
我想让我的对象不可变,但我遇到了一个问题,因为如果我让我的属性只读,我会破坏反序列化。有没有办法让我拥有不可变的对象并使用反序列化?
【问题讨论】:
标签: c# json.net immutability
我正在使用一个使用 json 的 API。我创建了一些类来为 API 建模。为了让生活更轻松,我的模型使用公共属性,而 Json.Net 在将 json 反序列化为对象时会使用这些属性。
我想让我的对象不可变,但我遇到了一个问题,因为如果我让我的属性只读,我会破坏反序列化。有没有办法让我拥有不可变的对象并使用反序列化?
【问题讨论】:
标签: c# json.net immutability
为构造函数提供与属性对应的参数。参数和属性的首字母大小写不需要匹配。
【讨论】:
我认为您应该可以使用JsonConstructorAttribute。示例见this question。
【讨论】:
JsonConstructorAttribute。