2012-02-17 116 views
2

我正在尝试写入XML文件。写入XML文件

我有一个配置列表。

[Serializable] 
public class Configuration 
{ 
    public decimal X { get; set; } 
    public decimal Y { get; set; } 
} 

这是我的财产。

[XmlArray("Configurations")] 
    [XmlArrayItem("Configuration")] 
    public List<Configuration> Configurations { get;set; } 

来电者是:

this.Configurations = new List<Configuration>() 
    { 
     new Configuration() { X = 1, Y = 10 }, 
     new Configuration() { X = 10, Y = 100 }, 
    }; 

    string filename = "test.xml"; 

    TextWriter writer = new StreamWriter(filename); 
    XmlSerializer serializer = new XmlSerializer(typeof(List<Configuration>)); 
    serializer.Serialize(writer, this.Configurations)); 
    writer.Close(); 

,输出是:

<?xml version="1.0" encoding="utf-8"?> 
<ArrayOfConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Configuration x="1" y="10" /> 
    <Configuration x="10" y="100" /> 
</ArrayOfConfiguration> 

有可以生成此XML文件的方法吗?

<?xml version="1.0" encoding="utf-8"?> 
<Configurations> 
    <Configuration X="1" Y="10" /> 
    <Configuration X="10" Y="100" /> 
</Configurations> 

有没有办法以这种方式生成它们?

+0

是。做手动序列化;-) – Cameron 2012-02-17 22:53:59

+0

我不知道那种方式,会怎么样? – 2012-02-17 22:58:27

+0

为什么第二个“”没有这些属性? – svick 2012-02-17 22:58:30

回答

4

尝试使用以下属性:

[XmlArray("Configurations")] 
[XmlArrayItem("Configuration")] 
+0

有一个疑问,当我序列化包含列表的对象时,它适用于我。有可能直接序列化属性? – 2012-02-18 00:41:56

+0

我不知道这是你的想法:[XmlRootAttribute(“Configurations”)] public class ConfigurationCollection:List { } – 2012-02-23 17:49:56