我有这个模型类,它是通过向 .NET 4.5 Web Api 控制器发送 POST 请求来自动填充的。
[Serializable]
[DataContract(Name="Message")]
public class Message {
[DataMember(Name="text")]
public string text {get; set;}
[DataMember(Name="id")]
public Guid id {get; set;}
}
现在,当我向控制器发送这样的请求时,我可以使用自动绑定模型:
POST /messages/
text=foo&id=1
不幸的是,这只有效,因为 DataMember 名称与属性名称相同,只是小写。
但是,如果我的 DataMember Names 和属性名称不同怎么办,例如:
[DataMember(Name="content")]
public string text { get; set; }
POST /messages/
content=foo&id=1
然后会导致绑定错误,因为“内容”字段不能绑定到 Message.text
无论出于何种原因,DataMember 属性都会被忽略 - 如果在序列化中将使用它,而在反序列化中则不会。