2012-04-08 11 views
0

は、このXMLを考える:のXmlSerializer:デシリアライズ文字列配列

<Items> 
<Item>a</Item> 
<Item>b</Item> 
</Items> 

がどのように私はXmlSerializerを使用して、これをデシリアライズすることができますか?いくつかのカスタムタイプの配列か、単にstring[]になります。

最も内側のタグが「文字列」と呼ばれていてもカスタム名を保持したい場合は、これを行うことができます。

答えて

5

ここLINQPad

でのXmlSerializerを使用して
void Main() 
{ 
    using(var stream = new StringReader("<Items><Item>a</Item><Item>b</Item></Items>")) 
    { 
     var serializer = new XmlSerializer(typeof(Container)); 

     var items = (Container)serializer.Deserialize(stream); 

     items.Dump(); 
    } 
} 

[XmlRoot("Items")] 
public class Container 
{ 
    [XmlElement("Item")] 
    public List<string> Items { get; set; } 
} 

を証明する一つの方法は、ここでXDocument

void Main() 
{ 
    var doc = XDocument.Parse("<Items><Item>a</Item><Item>b</Item></Items>"); 

    var list = doc.Element("Items").Elements("Item").Select (d => (string)d); 

    list.Dump(); 
} 
を使用して、別の方法ですです
関連する問題