1

私はXMLの初心者です。基本的に、次のようなクラスがあります。

public class Items:List<string>
{
    private string _name;
    public string Product
    {
    get {return _name;}
    set {_name=value;}
    }
}

次のように、このクラスに基づいてオブジェクトをシリアル化したい:

  <Items>
      <Product>product name</Product>
      <Item> A1 </Item>
      <Item> A2 </Item>
      <Item> A3 </Item>
      <Item> A4 </Item>
      <Item> A5 </Item>
   </Items>

私の質問は、このオブジェクトをシリアル化しようとしたときです.XMLシリアル化プログラムは製品要素を無視し、このXMLデータのみを取得しました:

<Items>
   <Item> A1 </Item>
   <Item> A2 </Item>
   <Item> A3 </Item>
   <Item> A4 </Item>
   <Item> A5 </Item>
</Items>

誰でも正しい形式の XML ドキュメントを取得するのを手伝ってくれます。

4

1 に答える 1

1

XmlSerializer(および他の多くのコード)は、アイテムまたは(排他的な)リストのいずれかとして物事を扱います。リストとプロパティをサブクラス化するべきではありません。リストとプロパティを持つ型を持つ必要あります。

[XmlRoot("Items")]
public class Foo {
    public string Product {get;set;}

    private readonly List<string> items = new List<string>();
    [XmlElement("Item")]
    public List<string> Items {get{return items;}}
}
于 2013-09-18T21:22:16.240 に答える