Json.Net 私有 setter 处理
Json.Net 没有用于在反序列化期间处理私有 setter 的内置默认行为。但是,它确实提供了一种使用属性显式指定此行为的方法。
[JsonProperty] 属性
[JsonProperty] 属性可用于指示 Json.Net反序列化时使用私有设置器填充只读属性。将此属性添加到只读属性将允许在反序列化期间设置它。
示例:
[JsonProperty] public Guid? ClientId { get; private set; }
替代解决方案:带参数的构造函数
处理私有设置器的另一种方法是提供一个构造函数,该构造函数的参数与您要设置的属性相匹配。反序列化 JSON 对象时将使用此构造函数。
示例:
public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } }
这样,您可以像这样反序列化 JSON 字符串:
string json = "{ \"bar\": \"Stack Overflow\" }"; var deserialized = JsonConvert.DeserializeObject<Foo>(json); Console.WriteLine(deserialized.Bar); // Stack Overflow
其中使用的解决方案取决于您的应用程序的具体要求。 [JsonProperty] 属性提供了一种处理私有 setter 的简单方法,但它需要对属性进行属性修饰。使用构造函数的替代方法避免了属性修饰,并且适用于私有和公共设置器。
以上是在使用 Json.Net 进行 JSON 反序列化期间如何处理私有 Setter?的详细内容。更多信息请关注PHP中文网其他相关文章!