C#属性命名事件

KJ3*_*KJ3 9 c# json

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

Tim*_* S. 15

假设您正在使用Json.NET,您可以使用该JsonProperty属性,或@符号,或者使用ContractResolver(有一个内置的使用camelCase的东西,因此属性名称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() });
Run Code Online (Sandbox Code Playgroud)


Alb*_*rto 13

使用@将关键字用作标识符

string @event { get; set; }
Run Code Online (Sandbox Code Playgroud)

前缀"@"允许使用关键字作为标识符,这在与其他编程语言交互时很有用.[...]带有@前缀的标识符称为逐字标识符.允许使用@前缀作为非关键字的标识符,但强烈建议不要使用样式.