设置DataMember Name的目的是什么?

本文关键字:是什么 设置 Name DataMember | 更新日期: 2023-09-27 18:19:25

这听起来像是一个非常愚蠢的问题,但我在谷歌上搜索后没有找到合适的答案。

如果可以直接使用属性名访问数据成员,那么显式设置数据成员名的目的是什么?

[DataMember(Name = "Status")]
public string Status { get; set; }

设置DataMember Name的目的是什么?

文档实际上很好:

Name属性使您能够使用不允许作为的名称公共语言运行时(CLR)标识符。另外,这个属性控件之外的数据成员名使类型作者能够定义单独的数据成员名CLR成员名。这个单独的定义有助于版本控制scenario (在不破坏数据的情况下更改CLR成员名)并允许不同的命名约定用于数据接触CLR成员

数据成员。Name只是定义了这个属性在序列化形式中的表示。

如果你序列化为JSON,这是非常方便的,因为在JavaScript中,你通常想要使用camelcase变量,而在c#中,你的模型应该有pascalcase名称…

另外,阅读官方文档中的注释,可能也会帮助你理解这一点。