c# inheriting generic collection and serialization

前端 未结 5 2118
礼貌的吻别
礼貌的吻别 2020-12-06 13:36

The setup:

class Item
{
    private int _value;

    public Item()
    {
        _value = 0;
    }

    public int Value { get { return _value; } set { _valu         


        
5条回答
  •  伪装坚强ぢ
    2020-12-06 14:07

    You can also try to implelemnt your own serialization using IXmlSerializable interface

        public class ItemCollection : Collection,IXmlSerializable
        {
            private string _name;
    
            public ItemCollection()
            {
                _name = string.Empty;
            }
    
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
    
     #region IXmlSerializable Members
    
             public System.Xml.Schema.XmlSchema GetSchema()
             {
                  return null;
             }
    
             public void ReadXml(System.Xml.XmlReader reader)
             {
    
             }
    
             public void WriteXml(System.Xml.XmlWriter writer)
             {
                  writer.WriteElementString("name", _name);
                  List coll = new List(this.Items);
                  XmlSerializer serializer = new XmlSerializer(coll.GetType());
                  serializer.Serialize(writer, coll);
    
             }
    
    #endregion
       }
    

    Above code will generate the serialized xml as

    
    
      
      
        
          1
        
        
          2
        
      
    
    

提交回复
热议问题