Неправильный XML файл - Сериализация и десериализация класса - C#
Формулировка задачи:
У меня есть сериализация и десериализация класса. При десериализации вылезает исключение
Необработанное исключение типа "System.InvalidOperationException" в System.Xml.dll
Дополнительные сведения: There is an error in XML document (2, 2).
Что может быть не так?
public Products ReadFromFile() { string line; System.IO.StreamReader file = new System.IO.StreamReader(@"H:\Информатика\ООП\XML.xml"); System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(Product)); return (Products)reader.Deserialize(file); }
<?xml version="1.0" encoding="utf-8"?> <Products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <order> <Product> <productname>Product1</productname> <price>0</price> <quantity>0</quantity> <weight>0</weight> <dimensions>0</dimensions> </Product> <Product> <productname>Product2</productname> <price>0</price> <quantity>0</quantity> <weight>0</weight> <dimensions>0</dimensions> </Product> </Products>
Решение задачи: «Неправильный XML файл - Сериализация и десериализация класса»
textual
Листинг программы
public class XMLHelper { public static T Deserialize<T>(string strXML, Encoding encoding = null) where T:class { if (encoding == null) encoding = Encoding.Unicode; XmlSerializer ser = new XmlSerializer(typeof(T)); XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); namespaces.Add(string.Empty, string.Empty); StringReader reader = new StringReader(strXML); T temp = null; try { temp = (T)(ser.Deserialize(reader)); } catch (Exception) { throw new Exception("Ошибка при создании настроек XML: ошибка десериализации"); } reader.Close(); return temp; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д