反序列化只读变量

Sha*_*pov 3 c# json.net

我有这样的课:

public class Pussy {
    public readonly int Meows;

    [JsonConstructor]
    private Pussy() { }

    public Pussy(int meows)
    {
        this.Meows = meows;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用Json.NET对其进行序列化时,它可以正常工作:

{"Meows":3}
Run Code Online (Sandbox Code Playgroud)

但是反序列化时,它只是在创建一个类,Meows并将其设置为0

怎么了?如何解决?

oak*_*kio 8

尝试JsonProperty对只读字段使用属性

[JsonProperty]
public readonly int Meows;
Run Code Online (Sandbox Code Playgroud)

JsonConstructor属性的非默认的构造函数。

[JsonConstructor]
public Pussy(int meows)
Run Code Online (Sandbox Code Playgroud)