gpt4 book ai didi

c# - Json.Net 中的私有(private)二传手

转载 作者:IT王子 更新时间:2023-10-29 03:41:13 25 4
gpt4 key购买 nike

我知道有一个属性可以处理私有(private) setter ,但我有点希望将此行为作为默认行为,有没有办法实现这一点?除了调整来源。如果有这样的设置就好了。

最佳答案

我来这里是为了寻找使 Json.NET 在反序列化时填充只读属性的实际属性,这就是 [JsonProperty],例如:

[JsonProperty]
public Guid? ClientId { get; private set; }

替代方案

只需提供一个具有与您的属性匹配的参数的构造函数:

public class Foo
{
public string Bar { get; }

public Foo(string bar)
{
Bar = bar;
}
}

现在可以了:

string json = "{ \"bar\": \"Stack Overflow\" }";

var deserialized = JsonConvert.DeserializeObject<Foo>(json);
Console.WriteLine(deserialized.Bar); // Stack Overflow

我更喜欢这种方法,因为:

  • 它不需要您用特性来装饰您的属性。
  • 它适用于 { get;私有(private)集; }{ get;

关于c# - Json.Net 中的私有(private)二传手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com