2010-05-28 38 views
5

BuNET (dizideki) Bu Xml

<foo> 
    <bar ... /> 
    <bar ... /> 
</foo> 

benziyor Xml ihtiyaç Ve şu anda aşağıdaki sınıf yapıya sahip seri hale getirmek için nasıl:

[XmlRoot("foo")] 
public class Foo 
{ 
    [XmlArrayItem("bar")] 
    public List<Bar> myBars; 
} 

Ama bu bana nerede çubuk Xml verir öğeler bir çubuk elemanının içine sarılır. Özel XmlAttributes'ımı nasıl tanımlamalıyım, böylece ihtiyacım olan Xml yapısını alır mıyım?

cevap

7

Ben benzer dün şey çözmek zorunda kaldı ve bu benim için bir çözüm oldu: Aslında bir List<T> olarak Foo tanımlanan

[XmlRoot("foo")] 
public class Foo : List<Bar> 
{ 
} 

[XmlType("bar")] 
public class Bar 
{ 
} 

:

[XmlRoot("foo")] 
public class Foo 
{ 
    [XmlElement("bar")] 
    public List<Bar> myBars; 
} 
3

kullandığım çözüm budur Bu yüzden genel bir liste olarak çalışır. Bu listedeki türün yalnızca XmlType özniteliğini tanımlaması gerekir.

+0

Sadece bir doğru cevabı olabilir :(Her iki doğru yanıtı da işaretlemek isterdim – Morri

+0

Beni seç, beni seç! ;-) – Steven