以下のような継承クラスにてXmlシリアライズをおこなうと
親クラスのプロパティがシリアライズされません。
何か方法はあるでしょうか。
C#
1[XmlRoot("DataA")]] 2class DataA 3{ 4 private DataC _c; 5 [XmlElement("DataC")] 6 public DataC _c 7 { 8 get { return _c; } 9 set { _c = value; } 10 } 11} 12 13class DataB 14{ 15 private string pName; 16 [XmlElement("Name")] 17 public string pName 18 { 19 get { return pName; } 20 set { pName = value; } 21 } 22} 23 24class DataC : DataB 25{ 26 private string pAddress; 27 [XmlElement("Address")] 28 public string pAddress 29 { 30 get { return pAddress; } 31 set { pAddress = value; } 32 } 33}
これをシリアライズすると
xml
1<?xml version="1.0" encoding="shift_jis"?> 2<DataA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 3 <DataC> 4 <Address /> 5 </DataC> 6</DataA>
になり、親クラスの "Name" がシリアライズされません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/09/05 00:24
2018/09/05 00:26
2018/09/05 00:46
退会済みユーザー
2018/09/05 00:55
2018/09/05 00:58