Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#属性命名事件_C#_Json - Fatal编程技术网

C#属性命名事件

C#属性命名事件,c#,json,C#,Json,我使用的是Json序列化程序,需要绑定到一个名为“event”的属性名。当然event是C#中的一个关键字,因此不允许执行string event{get;set;}之类的操作。到底有什么办法去做吗?我无法更改返回给我的对象的名称。Use@to Use 前缀“@”允许将关键字用作标识符,即 与其他编程语言接口时非常有用。 [...] 带有@前缀的标识符称为逐字标识符。使用 不允许使用非关键字标识符的@前缀,但 作为一种风格,强烈地劝阻 假设您使用的是Json.NET,则可以将、或与一起使用(有一

我使用的是Json序列化程序,需要绑定到一个名为“event”的属性名。当然event是C#中的一个关键字,因此不允许执行
string event{get;set;}
之类的操作。到底有什么办法去做吗?我无法更改返回给我的对象的名称。

Use@to Use

前缀“@”允许将关键字用作标识符,即 与其他编程语言接口时非常有用。 [...] 带有@前缀的标识符称为逐字标识符。使用 不允许使用非关键字标识符的@前缀,但 作为一种风格,强烈地劝阻


假设您使用的是Json.NET,则可以将、或与一起使用(有一个内置的属性名,它使事件成为camelCase,因此
Event
的属性名将序列化为
Event


+1用于
JsonProperty
,它避免了在
@
中到处乱搞。当然,总会有一个可怜的灵魂不得不用VB写东西,所以
Event
对他们来说也是禁区,他们必须写
[Event]
来绕开它,因此他们会抱怨你应该用一个完全不同的词。
string @event { get; set; }
[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() });