2011-07-13 93 views
2

我一直在玩xml序列化一段时间,我遇到了序列化列表集合的问题。我想序列化一个列表集合,而不用将上面的元素包裹起来。见下面的例子:列表集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> 

我已经尝试设置不同的属性,以我的课,我从不过我serializaing似乎无法得到它的任何地方。如果任何人都可以告诉我什么属性,我需要使用我的xml序列化看起来像输出xml我想这将不胜感激。

干杯!

回答

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> 
+0

感谢您的帮助。我不认为你可以用xml属性将elementname设置为什么来解释序列化程序对该属性的作用? – madness800

+0

@ madness800,你可以在不初始化ElementName的情况下设置[XmlElement] –