允许 Newtonsoft 的 JsonConvert 访问内部 getter/setters

Allowing Newtonsoft's JsonConvert access to internal getter/setters

我有一个带有内部 getters/setters 的 class 以防止用户访问此功能(我正在使用 REST api)。但是,这也意味着 JsonConvert 无权访问它们。如何允许 JsonConvert 访问内部功能?

您应该能够使用 JsonPropertyAttribute 装饰它们。

void Main()
{
    var x = new Test();
    Console.WriteLine(JsonConvert.SerializeObject(x));
}

// Define other methods and classes here
public class Test 
{
    public Test()
    {
        TestProp = "test";
    }

    [JsonProperty]
    internal string TestProp { get; set; }
}

输出:{"TestProp":"test"}

使用 Linqpad。