1
昨天我问了this question,想知道如何使用MVCContrib生成带有属性的XML。答案是使用[XmlAttribute]
。如何将一个属性添加到XML节点,当该节点从列表序列化?
因为,我已经成功地使用[XmlAttribute]
得到以下XML:
<?xml version="1.0" encoding="utf-8"?>
<TopTen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SectorName>Property - Direct UK</SectorName>
<PerformanceTo>2011-01-31T00:00:00</PerformanceTo>
<OrderedShareClassReturns>
<OrderedShareClassReturn Name="Property L" Performance="11.074980" />
<OrderedShareClassReturn Name="UK Property Trust I Inc" Performance="10.512610" />
<OrderedShareClassReturn Name="UK Property Trust I Acc" Performance="10.466310" />
<OrderedShareClassReturn Name="UK Property Trust R Inc" Performance="9.725650" />
</OrderedShareClassReturns>
</TopTen>
现在我需要一个第二<ShareClassReturns>
节点添加到XML,和我想的属性添加到该元素,所以XML变成:
<?xml version="1.0" encoding="utf-8"?>
<TopTen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SectorName>Property - Direct UK</SectorName>
<PerformanceTo>2011-01-31T00:00:00</PerformanceTo>
<OrderedShareClassReturns order="top"> // how can I add the "top" & "bottom" attributes?
<OrderedShareClassReturn Name="Property L" Performance="11.074980" />
<OrderedShareClassReturn Name="UK Property Trust I Inc" Performance="10.512610" />
<OrderedShareClassReturn Name="UK Property Trust I Acc" Performance="10.466310" />
<OrderedShareClassReturn Name="UK Property Trust R Inc" Performance="9.725650" />
</OrderedShareClassReturnss>
<OrderedShareClassReturns order="bottom">
<OrderedShareClassReturn Name="Property L" Performance="0.074980" />
<OrderedShareClassReturn Name="UK Property Trust I Inc" Performance="1.512610" />
<OrderedShareClassReturn Name="UK Property Trust I Acc" Performance="2.466310" />
<OrderedShareClassReturn Name="UK Property Trust R Inc" Performance="3.725650" />
</OrderedShareClassReturns>
</TopTen>
但我不知道该怎么做。我正在序列化对象定义为:
public class TopTen
{
public string SectorName { get; set; }
public DateTime PerformanceTo { get; set; }
public List<OrderedShareClassReturn> OrderedShareClassReturns { get; set; }
}
public class OrderedShareClassReturn
{
[XmlAttribute]
public string Name { get; set; }
[XmlAttribute]
public decimal Performance { get; set; }
}
所以,问题是,我怎么能添加属性到<OrderedShareClassReturns>
元素?我是否需要将OrderedShareClassReturns
定义为实现List<OrderedShareClassReturn>
的类,并且有一个名为order
的属性,它具有[XmlAttribute]
?还是有更简单的方法?