2011-03-08 10 views
5

Bir sınıf FooNesnelerin bir dizisini/dizisini XML'den C# ile seri hale getirmenin en kolay yolu?

namespace Example 
{ 
    [XmlRoot("foo")] 
    class Foo 
    { 
     public Foo() {} 

     [XmlElement("name")] 
     public string Name; 
    } 
} 

(uygun using direktifleri varsayıyorum) Ve XmlSerializer işin asgari tutar nedir Foo

<foo> 
    <name>BOSS</name> 
</foo> 

türünde bir nesne üretmek için böyle XML ile başa çıkabilirim var XmlSerializer'ın bu formun XML'sini ele alabilmesi için,

ve Foo nesnesi bir dizi üretir?

DÜZENLEME:

nasıl tek Foo için yapıyorum: En basit benim kadarıyla Foo[]

var xr = new XmlTextReader("foos.xml"); 
var xs = new XmlSerializer(typeof(Foo[])); 
var a = (Foo[]) xs.Deserialize(xr); 
+0

Henüz XmlSerializer kullanan bir kod yazdınız mı? – RQDQ

+0

@RQDQ Tek bir öğe için bunu nasıl yaptığımın bazı örnekleri ve bunların bir dizi ile nasıl olabileceğini anladım. –

cevap

5

için

var xr = new XmlTextReader("foo.xml"); 
var xs = new XmlSerializer(typeof(Foo)); 
var a = (Foo) xs.Deserialize(xr); 

Potansiyel bir örnek. Başka bir sınıf Foos ekleyerek ve xmlroot etiketini Foo sınıfından kaldırarak.

namespace Example 
{ 
    [XmlRoot("foos")]  
    class Foos 
    { 
     public Foos() {} 

     [XmlElement("foo")] 
     public List<Foo> FooList {get; set;} 
    } 
}