Changeset 2612


Ignore:
Timestamp:
03/31/12 14:56:49 (3 years ago)
Author:
lowjoel
Message:

Follow the advice in http://www.codeproject.com/Articles/43237/How-to-Implement-IXmlSerializable-Correctly since the MSDN documentation is very vague about proper behaviour of IXmlSerializable.ReadXml?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs

    r2606 r2612  
    9494 
    9595            list.Clear(); 
    96             while (reader.Read() && reader.NodeType != XmlNodeType.EndElement) 
    97             { 
    98                 foreach (XmlSerializer serializer in targetSerializers) 
     96            bool empty = reader.IsEmptyElement; 
     97            reader.ReadStartElement("ErasureTargetCollection"); 
     98            if (!empty) 
     99            { 
     100                while (reader.NodeType != XmlNodeType.EndElement) 
    99101                { 
    100                     XmlReader subTree = reader.ReadSubtree(); 
    101                     if (serializer.CanDeserialize(subTree)) 
     102                    foreach (XmlSerializer serializer in targetSerializers) 
    102103                    { 
    103                         IErasureTarget target = (IErasureTarget)serializer.Deserialize(subTree); 
    104                         list.Add(target); 
    105                         break; 
     104                        XmlReader subTree = reader.ReadSubtree(); 
     105                        if (serializer.CanDeserialize(subTree)) 
     106                        { 
     107                            IErasureTarget target = (IErasureTarget) 
     108                                serializer.Deserialize(subTree); 
     109                            list.Add(target); 
     110                            break; 
     111                        } 
    106112                    } 
    107113                } 
     114 
     115                reader.ReadEndElement(); 
    108116            } 
    109117        } 
Note: See TracChangeset for help on using the changeset viewer.