[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]] になるとか……。
そうですねー、初回は自動生成なので、そのように生成しちゃえばいいかなぁ。
部分的に変えられるのはいい、と思います!
が、言語超えた相互変換性は落ちそうなのでそこがアリかどうかですかしらん?