2008-11-24 9 views
10

सीरियलाइजिंग करते समय सूची संपत्ति टैग से बचना संभव है?सूची संपत्ति के लिए XML टैग को दबाने के लिए कैसे करें

//[Serializable()] - removed, unnecessary 
public class Foo 
{ 
    protected List<FooBar> fooBars = new List<FooBar>(); 
    public virtual List<FooBar> FooBars 
    { 
     get { return fooBars; } 
     set { fooBars = value; } 
    } 
} 

// [Serializable()] - removed, unnecessary 
public class FooBar 
{ 
    public int MyProperty 
    { get; set; } 
} 

Serializing फू (टिप्पणी को छोड़कर) देता है:

<Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <FooBars> <!-- Unwanted tag --> 
    <FooBar> 
     <MyProperty>7</MyProperty> 
    </FooBar> 
    <FooBar> 
     <MyProperty>9</MyProperty> 
    </FooBar> 
    </FooBars> 
</Foo> 

वांटेड उत्पादन:

<Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <FooBar> 
    <MyProperty>7</MyProperty> 
    </FooBar> 
    <FooBar> 
    <MyProperty>9</MyProperty> 
    </FooBar> 

+0

[Serializable] एक्सएमएल क्रमबद्धता के साथ कोई संबंध नहीं है। – Cheeso

उत्तर

12

जोड़ना:

[System.Xml.Serialization.XmlElement("FooBar")] 
public virtual List<FooBar> FooBars 
{ 
    get { return fooBars; } 
    set { fooBars = value; } 
} 
में

परिणाम

<FooMain xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http:/ 
/www.w3.org/2001/XMLSchema"> 
    <FooBar> 
    <MyProperty>7</MyProperty> 
    </FooBar> 
    <FooBar> 
    <MyProperty>76</MyProperty> 
    </FooBar> 
    <FooBar> 
    <MyProperty>67</MyProperty> 
    </FooBar> 
</FooMain> 
संबंधित मुद्दे