我正在使用Json序列化程序,需要绑定到名为' event'的属性名称。当然,事件是C#中的关键字,因此不允许执行诸如string event { get; set; }
之类的操作。无论如何要去做那件事吗?我无法改变回复给我的物品的名称。
答案 0 :(得分:13)
使用@来使用keywords as identifiers
string @event { get; set; }
前缀“@”允许使用关键字作为标识符,即 在与其他编程语言交互时很有用。 [...] 带有@前缀的标识符称为逐字标识符。用于 允许使用非关键字标识符的@前缀,但是 强烈劝阻作为一种风格问题。
答案 1 :(得分:13)
假设你正在使用Json.NET,你可以使用JsonProperty
attribute,@
symbol或ContractResolver
(有一个内置的东西可以使用,因此,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() });