C#属性命名事件

时间:2014-04-21 18:36:25

标签: c# json

我正在使用Json序列化程序,需要绑定到名为' event'的属性名称。当然,事件是C#中的关键字,因此不允许执行诸如string event { get; set; }之类的操作。无论如何要去做那件事吗?我无法改变回复给我的物品的名称。

2 个答案:

答案 0 :(得分:13)

使用@来使用keywords as identifiers

string @event { get; set; }
  

前缀“@”允许使用关键字作为标识符,即   在与其他编程语言交互时很有用。   [...]   带有@前缀的标识符称为逐字标识符。用于   允许使用非关键字标识符的@前缀,但是   强烈劝阻作为一种风格问题。

答案 1 :(得分:13)

假设你正在使用Json.NET,你可以使用JsonProperty attribute@ symbolContractResolver(有一个内置的东西可以使用,因此,Event的属性名称将序列化为event)。

[JsonProperty("event")]
public string Event { get; set; }


public string @event { get; set; }


public string Event { get; set; }

var s = JsonConvert.SerializeObject(myObj, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() });
相关问题