2011-08-03 17 views
5

मेरे एक्सएमएल दस्तावेज़ में एक तत्व है जिसमें कई बाल तत्व हो सकते हैं। मेरी कक्षा में, मैं के रूप में संपत्ति की घोषणा:एक्सएमएल deserialization: अनुपस्थित तत्व मूल्य में deserialize शून्य संपत्ति मूल्य

[XmlArray("files", IsNullable = true)] 
[XmlArrayItem("file", IsNullable = false)] 
public List<File> Files { get; set; } 

अक्रमांकन के दौरान, अगर <files> तत्व याद आ रही है, मैं फ़ाइलें संपत्ति अशक्त होना चाहता हूँ। हालांकि, क्या होता है कि फ़ाइलों को एक खाली सूची वस्तु में deserialized है। मैं इसे कैसे रोकूं?

public class Foo 
{ 
    [XmlElement("files", IsNullable = true)] 
    public FooFiles Files { get; set; } 

} 
public class FooFiles 
{ 
    [XmlElement("file", IsNullable = false)] 
    public List<File> Files { get; set; } 
} 

यहाँ, Foo.Filesnull हो जाएगा अगर कोई <files/> तत्व है:

+0

मेरा मतलब था, अगर तत्व गुम है, तो – superkinhluan

उत्तर

3

एक विकल्प है कि उस को प्राप्त होता है सूची की कैप्सूलीकरण है।

+0

धन्यवाद। क्या कोई अन्य तरीका है जो अतिरिक्त वर्ग बनाने से बच सकता है। – superkinhluan

+0

@superkinhluan - जहां तक ​​मुझे पता है; जैसा कि आप देख सकते हैं, सूची उत्सुकता से बनाई गई है –

संबंधित मुद्दे