2012-12-30 14 views

risposta

8

Il vantaggio principale dell'utilizzo di DataContract consiste nel fatto che è possibile evitare gli attributi duplicati per alcuni suggerimenti di serializzazione comuni per XmlMediaTypeFormatter e JsonMediaTypeFormatter. Cioè è possibile attivare/disattivare proprietà specifiche di un modello da serializzare o rinominare una proprietà e avere entrambi i formattatori che lo rispettano.

Ad esempio:

[DataContract] 
public class Sample { 

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

    public string PropTwo {get;set;} 

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

è equivalente a:

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;} 
}