Główną zaletą korzystania z DataContract
jest to, że można uniknąć powtarzania atrybutów dla niektórych typowych wskazówek do serializacji dla XmlMediaTypeFormatter
i JsonMediaTypeFormatter
. To znaczy. możesz optować/rezygnować z określonych właściwości modelu, który ma zostać przekształcony do postaci szeregowej lub zmienić nazwę właściwości i oba formatery to respektują.
Na przykład:
[DataContract]
public class Sample {
[DataMember]
public string PropOne {get;set;}
public string PropTwo {get;set;}
[DataMember(Name="NewName")]
public string PropThree {get; set;}
}
odpowiada:
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;}
}