列表集合XML序列化

时间:2011-07-13 11:28:22

标签: c# .net xml serialization xml-serialization

我一直在玩xml序列化一段时间,我遇到了序列化列表集的问题。我想序列化一个列表集合,而不包含上面的元素。见下面的例子:

结果序列化:

<?xml version="1.0" encoding="utf-8" ?>
<Person>
  <Name>John</Name>
  <AddressLine>
    <string>Line 1</string>
    <string>Line 2</string>
    <string>Line 3</string>
  </AddressLine>
  <Telephone>123456789</Telephone>
</Person>

我要输出的序列化是:

<?xml version="1.0" encoding="utf-8" ?>
<Person>
  <Name>John</Name>
  <AddressLine>Line 1</AddressLine>
  <AddressLine>Line 2</AddressLine>
  <AddressLine>Line 3</AddressLine>
  <Telephone>123456789</Telephone>
</Person>

我已经尝试将不同的属性设置为我的类,我正在进行序列化,但我似乎无法随意使用它。如果有人能告诉我需要使用哪些属性来使我的xml序列化看起来像我想要的输出xml那将非常感激。

干杯!

1 个答案:

答案 0 :(得分:4)

[Serializable]
public class Person
{
    public string Name { get; set; }

    [XmlElement]
    public List<string> AddressLine { get; set; }
}

产生所需的输出:

<?xml version="1.0"?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>John</Name>
  <AddressLine>1</AddressLine>
  <AddressLine>2</AddressLine>
  <AddressLine>3</AddressLine>
</Person>