어제 this question에게 MVCContrib을 사용하여 XML 속성을 생성하는 방법을 궁금해했습니다. 대답은 [XmlAttribute]
입니다.List에서 해당 노드를 직렬화 할 때 XML 노드에 특성을 추가하는 방법은 무엇입니까?
이 때문에, 나는 성공적으로 다음과 같은 XML 얻을 [XmlAttribute]
을 사용했습니다 :
<?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>
지금 나는 XML에 두 번째 <ShareClassReturns>
노드를 추가 할 필요가, 그리고 그 요소에 속성을 추가 할 따라서 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>
요소에 그 속성을 추가 할 수있다 : 나는이 직렬화있어 개체는 정의? List<OrderedShareClassReturn>
을 구현하는 클래스로 OrderedShareClassReturns
을 정의하고 order
이라는 속성이 있어야합니까? [XmlAttribute]
입니까? 아니면 더 쉬운 방법이 있습니까?
public class ReturnsWrapper {
[XmlElement("OrderedShareClassReturn")]
public List<OrderedShareClassReturn> Items { get; set; }
[XmlAttribute("order")]
public string Order {get;set;}
}
하고 있습니다 :
public class TopTen
{
public string SectorName { get; set; }
public DateTime PerformanceTo { get; set; }
[XmlElement("OrderedShareClassReturns")]
public List<ReturnsWrapper> Returns { get; set; }
}