LittleProgrammer
LittleProgrammer

Reputation: 47

Deserialization XML in a List

The Application serializes a List to xml:

    <?xml version="1.0"?>
    <Tools xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Tool>
     <Name>test1</Name>
      <Path>C:\Program Files\FreePDF_XP\fpmailer.exe</Path>
    </Tool>
    <Tool>
    <Name>test2</Name>
    <Path>C:\Program Files\FreePDF_XP\fpassist.exe</Path>
   </Tool>
   <Tool>
   <Name>test3</Name>
    <Path>C:\Program Files\FreePDF_XP\ShellMail.exe</Path>
   </Tool>
   </Tools>

If I'm don't on the wrong way I must create new Objects and add them to a list:

Tool tool = new Tool();
XmlSerializer deserializer = new XmlSerializer(typeof(List<Tool>));
using (var reader = new StreamReader(@Start.userConfigurePath + "\\config.xml"))
            {
                tool = (Tool)deserializer.Deserialize(reader);
                reader.Close();
            }
             toolList.Add(tool);
        }

In the result there isn't a Object in the List. How can I deserialize the serialized objects in the xml in a List? Could it be that there is something wrong at the code for derisalization?

Edit: Something seems to be wrong with my xml declaration (XML File Error 2,2). That I don't understand because i create the xml document on this way:

  XmlDocument toolConfig = new XmlDocument();
        XmlNode myRoot;
        myRoot = toolConfig.CreateElement("Tool");
        toolConfig.AppendChild(myRoot);

Upvotes: 0

Views: 57

Answers (1)

L.B
L.B

Reputation: 116178

It should be

toolList  = (List<Tool>)deserializer.Deserialize(reader);

Upvotes: 2

Related Questions