序列化对象数组

use*_*949 4 .net c#

[Serializable()]
public class A
{

        [XmlArrayAttribute("Item")]
        public  List<B> items;
}

[Serializable()]
[XmlType(TypeName = "Item")]
public class B
{

}
Run Code Online (Sandbox Code Playgroud)

序列化后,我发现我有类似的东西

<Item>
   <Item> **** </Item>
   <Item> **** </Item>
    *****
</item>
Run Code Online (Sandbox Code Playgroud)

但我只想要

 <Item> **** </Item>
 <Item> **** </Item>
Run Code Online (Sandbox Code Playgroud)

怎么弄?

Dar*_*rov 5

public class A
{
    [XmlElement("Item")]
    public List<B> items;
}

public class B
{

}
Run Code Online (Sandbox Code Playgroud)

请注意,您不需要该[Serializable]属性.它仅用于二进制序列化并被XmlSerializer忽略,这是我怀疑你正在使用的,即使你的问题中已经明确说明了这一点.另外为了更好的封装,我建议你使用属性而不是字段.还有一句话:C#中的标准命名约定规定属性名称应以大写字母开头.

  • 当您想要从该成员生成和个性化嵌套的XML元素序列时. (2认同)