6
多くの時間私は、その開発者がAsp.net Web APIモデルのDataContractとDataMember属性を使用していることがわかりましたか?Asp.net Web APIを使用しているときにDataContract属性とDataMember属性を使用することには何もありませんか?
違いとベストプラクティスは何ですか?
多くの時間私は、その開発者がAsp.net Web APIモデルのDataContractとDataMember属性を使用していることがわかりましたか?Asp.net Web APIを使用しているときに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;}
}