[DataContract]
public class Hoge
{
[DataMember(Order = 0)]
public int MyProperty1 { get; set; }
}
[DataContract]
public class HogeHoge : Hoge
{
[DataMember(Order = 1)]
public int MyProperty2 { get; set; }
[DataMember(Order = 2)]
public int MyProperty3 { get; set; }
}HogeHogeのシリアライズ時の表現は[Prop1, Prop2, Prop3]。
しかしこれだと、Hogeにたいしてプロパティを追加したりするのが辛い(というかもはや実質不可能……)
できれば[DataMember(Order = 0)]MyProperty2, [DataMember(Order = 1)]MyProperty3 で書きたい。そこでHogeHogeをシリアライズした時に、まっ平らになるのではなく、継承関係も維持したままシリアライズするとかどうでしょう?
[Prop1, [Prop2, Prop3]] になるとか……。
でいけそうなのでできればそちらで。。。
一部だけMapにする方法、
とかでどうでしょう(デフォルトは NotSpecified で、SerializationContext の設定に従う)