【问题标题】:Is there any benifit in using DataContract and DataMember attributes while working with Asp.net Web API?在使用 Asp.net Web API 时使用 DataContract 和 DataMember 属性有什么好处吗?
【发布时间】:2012-12-14 21:30:28
【问题描述】:

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

有什么区别和最佳做法?

【问题讨论】:

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


    【解决方案1】:

    使用DataContract 的主要优点是可以避免XmlMediaTypeFormatterJsonMediaTypeFormatter 的一些常见序列化提示的重复属性。 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;}
    }
    

    【讨论】:

    • 当您将“IsRequired”设置为 true 时,它​​还用于验证接收到的所需成员的模型。
    猜你喜欢
    • 2011-06-17
    • 2013-11-26
    • 2015-10-22
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多