2016-04-19 8 views
1

:現在シリアライズ

<Person> 
    <Name>John</John> 
    <Address>Address1</Address> 
    <Address>Address2</Address> 
    <Address>Address3</Address> 
</Person> 

は、私はその名前の内側List<string> Addressesclass Personを持っています。

私の代わりに、XmlSerializerは、デフォルトでは子要素として、すべてのアドレスを保持<Addresses>ノードが作成されますので、私はなるだろうと思う:

<Person> 
    <Name>John</John> 
    <Addresses>   
     <Address>Address1</Address> 
     <Address>Address2</Address> 
     <Address>Address3</Address> 
    </Addresses> 
</Person> 

は私が必要なものされていないこと。

私の質問は、<Person>内のすべてのアドレスを平坦にすることができますか?

+1

https://stackoverflow.com/questions/8199738/how-do-i-get-xmlserializer-to-not-serialize-container-tags – Pavel

答えて

0

XmlArrayの代わりに以下のコードを使用してください。 XmlArrayは余分なタグレイヤを追加します。

[XmlRoot("Person")] 
    public class Person 
    { 
     [XmlElement("Name")] 
     public string name {get; set;} 
     [XmlElement("Address")] 
     public string[] address {get; set;} 
    } 
+0

は、この形式のdeserializableですか?つまり、シリアライザはコレクションの要素であることをシリアライザがどのように認識していますか? – SuperJMN

+0

文字列[]型で配列です。 – jdweng