開発者がAsp.netWebAPIモデルにDataContract属性とDataMember属性を使用しているのを何度も見ましたか?
違いとベストプラクティスは何ですか?
開発者がAsp.netWebAPIモデルにDataContract属性とDataMember属性を使用しているのを何度も見ましたか?
違いとベストプラクティスは何ですか?
を使用する主な利点は、およびDataContract
のいくつかの一般的なシリアル化ヒントの属性の重複を回避できることです。つまり、シリアル化するモデルの特定のプロパティをオプトイン/オプトアウトするか、プロパティの名前を変更して、両方のフォーマッターにそれを尊重させることができます。XmlMediaTypeFormatter
JsonMediaTypeFormatter
例えば:
[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;}
}