3

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

"protected": true
  1. 是否可以添加一个名称完全受保护的成员?
  2. 如果解析器尝试设置受保护的属性,是否可以添加触发的 setter 和 getter?(但将值分配给名为 _protected 的私有成员)
  3. 当他遇到名为protected的属性时,我是否应该修改解析器以使其表现不同?

感谢您的任何建议。

4

2 回答 2

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;
    }
} 

3:

由你决定!

于 2013-08-18T20:17:52.180 回答
1

我实现了这个解决方案:

[JsonProperty("protected")] public bool Protected { get; set; }

就像丹尼尔曼在他的评论中建议的那样:

于 2013-08-20T05:17:10.850 回答