【发布时间】:2016-04-06 09:23:26
【问题描述】:
我有一个带有内部 getter/setter 的类,以防止用户访问此功能(我正在使用 REST api)。但是,这也意味着 JsonConvert 无权访问它们。如何允许 JsonConvert 访问内部功能?
【问题讨论】:
标签: c# json.net internal class-visibility
我有一个带有内部 getter/setter 的类,以防止用户访问此功能(我正在使用 REST api)。但是,这也意味着 JsonConvert 无权访问它们。如何允许 JsonConvert 访问内部功能?
【问题讨论】:
标签: c# json.net internal class-visibility
您应该能够使用 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。
【讨论】:
InternalsVisibleTo!有没有一种方法我不必为每个具有内部 getter/setter 的属性执行此操作,因为有很多?
[JsonObject(MemberSerialization.Fields)]装饰班级。您还可以使用自定义合约解析器,如下所示:stackoverflow.com/a/24107081/5402620