C#:如何添加名为"protected"的类成员

der*_*ael 3 c# api json.net

我是C#的新手,但在Objective-C和OOP方面拥有丰富的经验.我正在使用Json.NET自动解析对对象的API响应.碰巧其中一个返回的对象有一个名为protected的属性.显然这是一个问题,因为protected是类成员声明的关键字.

"protected": true
Run Code Online (Sandbox Code Playgroud)
  1. 是否可以添加名称受保护的成员?
  2. 如果解析器尝试设置受保护的属性,是否可以添加触发的setter和getter?(但将值赋给名为_protected的私有成员)
  3. 我是否应该在遇到名为protected的属性时修改解析器以使其行为不同?

谢谢你的建议.

Dan*_*ann 5

1:

对于问题#1:您可以在其前面添加@符号作为变量名称使用的任何关键字.

例如

public string @protected {get; set; }

不过,我建议要这样做.您应该能够将JSON中的"受保护"字段重新映射到POCO中的其他属性.

2:

private string _protected;

public string @protected 
{
    get 
    {
       //any additional code you want
        return _protected;
    }
    set
    {
       //any additional code you want
        _protected = value;
    }
} 
Run Code Online (Sandbox Code Playgroud)

3:

由你决定!

  • 您应该能够使用`JsonProperty`属性重命名它.例如`[JsonProperty("protected")] public string SomethingOtherThanProtected {get; 设置;}` (3认同)