2012-07-12 3 views
1

.NET XmlSerializer를 사용하여 항목이 컬렉션 인 Person을 간단하게 serialize합니다.XmlSerializer : 태그 서식 지정

class Item 
{ 
    Name 
    Price 
} 

class Person 
{ 
    Name 
    List Items<Item> 
} 

괜찮습니까? 나는 xmlWriterSettings를 사용하여 내 xml 파일을 들여 씁니다.

<?xml version="1.0" encoding="utf-8"?> 
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <name>TestName</name> 
    <Items> 
    <Item> 
     <name>one</name> 
     <price>0</price> 
    </Item> 
    <Item> 
     <name>two</name> 
     <price>1</price> 
    </Item> 
    </Items> 
</Viewport> 

하지만 내가 원하는 것은 : 출력은

<?xml version="1.0" encoding="utf-8"?> 
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <name>TestName</name> 
    <Items> 
    <Item name="one" price="0" /> 
    <Item name="two" price="1" /> 
    </Items> 
</Viewport> 

얼마 대신 내가

<Item name="one" price="0" /> 

으로 XML을 작성하려는

<Item> 
     <name>one</name> 
     <price>0</price> 
</Item> 

내가 어떻게 할 수의 .NET (C#)에서 할 수 있습니까?

+0

으로 Name & Price 속성을 장식 : http://stackoverflow.com/questions/11449564/why- is-a-field-in-an-auto-generated-class-serialize-as-an-element-when-define – Anton

답변

0

(직렬화 할 때 즉, 요소 ​​동작 대 속성)이 질문이 하나와 유사한 XmlAttribute

2
class Item 
{ 
    [System.Xml.Serialization.XmlAttributeAttribute("name")] 
    string Name; 
    [System.Xml.Serialization.XmlAttributeAttribute("price")] 
    string Price; 
}