asp.net - 在使用 Asp.net Web API 时使用 DataContract 和 DataMember 属性有什么好处吗?

标签 asp.net asp.net-web-api datacontract data-members

很多次我看到开发人员在他们的 Asp.net Web API 模型中使用 DataContract 和 DataMember 属性?

有什么区别和最佳实践?

最佳答案

使用DataContract的主要优势, 是您可以避免 XmlMediaTypeFormatter 的一些常见序列化提示的重复属性。和 JsonMediaTypeFormatter . IE。您可以选择加入/选择退出要序列化的模型的特定属性或重命名属性,并使两个格式化程序都尊重这一点。

例如:

[DataContract]
public class Sample {

   [DataMember]
   public string PropOne {get;set;}

   public string PropTwo {get;set;}

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

相当于:
public class Sample {
   public string PropOne {get;set;}

   [XmlIgnore]
   [JsonIgnore]
   public string PropTwo {get;set;}

   [JsonProperty(PropertyName = "NewName")]
   [XmlElement("NewName")]
   public string PropThree {get; set;}
}

关于asp.net - 在使用 Asp.net Web API 时使用 DataContract 和 DataMember 属性有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089455/

相关文章:

c# - 有没有办法从 DataContract 导出 XSD 架构

asp.net - JQueryUI 与 Google 的 CDN 问题

c# - 添加 CosmosDB 实体,(无法解析租户类型实体的 iD)

c# - 无法将当前 JSON 数组(例如 [1,2,3])反序列化为具有复杂和嵌套对象的类型

c# - 如何让IdentityServer将用户身份添加到访问 token 中?

wcf - 何时使用 DataContract 和 DataMember 属性?

javascript - 错误 javascript 代码显示标签值未定义

asp.net - 通过 Web 服务公开 SQL Server 数据库的最佳方式是什么

asp.net - 从 ASP.Net BLL 类中的 Windows 身份验证获取全名

c# - wcf服务的奇怪问题