Неправильный 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;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы