Calling
List<PC> _PCList = new List<PC>();
...add Pc to PCList.. 
WriteXML<List<PC>>(_PCList, "ss.xml");
Function
public static void WriteXML<T>(T o, string filename)
{
    string filePath= Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Genweb2\\ADSnopper\\" + filename;
    XmlDocument xmlDoc = new XmlDocument();
    XPathNavigator nav = xmlDoc.CreateNavigator();
    using (XmlWriter writer = nav.AppendChild())
    {
        XmlSerializer ser = new XmlSerializer(typeof(List<T>), new XmlRootAttribute("TheRootElementName"));
        ser.Serialize(writer, o); // error
    }
    File.WriteAllText(filePath,xmlDoc.InnerXml);
}
inner exception
Unable to cast object of type 'System.Collections.Generic.List
1[PC]' to type 'System.Collections.Generic.List1[System.Collections.Generic.List`1[PC]]'.
Please Help
The problem is with the line
XmlSerializer ser = new XmlSerializer(typeof(List<T>), ...
Your T is already List<PC>, and you're trying to create typeof(List<T>), which will translate to typeof(List<List<PC>>). Simply make it typeof(T) instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With