6

我正在将一个对象序列化为 XML。我有这样的事情:

Class A
{
   public string propertyA1  { get; set; }
   public List<B> bList { get; set; }
}

Class B
{
   public string num {get; set;}
   public string propertyB1  { get; set; }
}

当我将它序列化为 XML 时,我希望它看起来像这样:

<A>
  <propertyA1>someVal</propertyA1> 
  <B num=1>
     <propertyB1>someVal</propertyB1> 
  </B>
  <B num=2>
     <propertyB1>someVal</propertyB1> 
  </B>
</A>

但是,它看起来像这样:

<A>
  <propertyA1>someVal</propertyA1> 
  <bList>
     <B num=1>
        <propertyB1>someVal</propertyB1> 
     </B>
     <B num=2>
        <propertyB1>someVal</propertyB1> 
     </B>
  </bList>
</A>

知道如何摆脱输出中的bList吗?如果需要,我可以提供更多示例代码

谢谢,斯科特

4

2 回答 2

16

添加属性[XmlElement]以将集合视为元素的平面列表:

Class A
{
   public string propertyA1  { get; set; }
   [XmlElement("B")]
   public List<B> bList { get; set; }
}

更多信息请点击这里

于 2012-07-31T01:37:41.880 回答
2

您也可以尝试 XmlArrayItemAttribute。请参考以下链接。

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlarrayitemattribute.aspx

http://msdn.microsoft.com/en-us/library/2baksw0z(v=vs.71).aspx

于 2012-07-31T05:03:41.950 回答