设置DataMember名称的目的是什么

时间:2014-08-26 15:59:21

标签: c# .net wcf

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

当您可以使用属性名称直接访问Datamember时,显式设置数据成员名称的目的是什么,如下面datamember属性旁边的括号中所示。

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

2 个答案:

答案 0 :(得分:3)

docs实际上非常好:

  

使用“名称”属性,您可以使用不允许的名称   公共语言运行时(CLR)标识符。此外,此属性   使类型作者能够定义与数据成员名称分开的数据成员名称   CLR会员名称。这个单独的定义有助于版本控制   方案(更改CLR成员名称而不破坏数据   合同)并允许不同的命名约定进行数据联系   成员和CLR成员。

答案 1 :(得分:0)

Datamember.Name只是以序列化形式定义此属性的表示形式。

如果您序列化为JSON,这非常方便,因为在JavaScript中您通常希望使用camelCased变量,而在C#中,您的模型应该具有PascalCased名称......

另外,阅读official docs中的评论,也可以帮助您理解这一点。