Many time i saw that developer are using DataContract and DataMember Attributes for their Asp.net Web API model?
What are the differences and best practices?
The main advantage of using DataContract
, is that you can avoid duplicate attributes for some common serialization hints for XmlMediaTypeFormatter
and JsonMediaTypeFormatter
. I.e. you can opt-in/opt-out specific properties of a model to be serialized or rename a property and have both formatters respect that.
For example:
[DataContract]
public class Sample {
[DataMember]
public string PropOne {get;set;}
public string PropTwo {get;set;}
[DataMember(Name="NewName")]
public string PropThree {get; set;}
}
is equivalent to:
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;}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With