这可能听起来像一个非常愚蠢的问题,但我在谷歌搜索后找不到合适的答案。
当您可以使用属性名称直接访问Datamember时,显式设置数据成员名称的目的是什么,如下面datamember属性旁边的括号中所示。
[DataMember(Name = "Status")]
public string Status { get; set; }
答案 0 :(得分:3)
docs实际上非常好:
使用“名称”属性,您可以使用不允许的名称 公共语言运行时(CLR)标识符。此外,此属性 使类型作者能够定义与数据成员名称分开的数据成员名称 CLR会员名称。这个单独的定义有助于版本控制 方案(更改CLR成员名称而不破坏数据 合同)并允许不同的命名约定进行数据联系 成员和CLR成员。
答案 1 :(得分:0)
Datamember.Name只是以序列化形式定义此属性的表示形式。
如果您序列化为JSON,这非常方便,因为在JavaScript中您通常希望使用camelCased变量,而在C#中,您的模型应该具有PascalCased名称......
另外,阅读official docs中的评论,也可以帮助您理解这一点。