Дессериализация XML на С#

Сама дессериализация.

 public void ReadFromXML(string fileName)
            {
                XmlSerializer deserializer = new XmlSerializer(typeof(FuncData));
                TextReader textReader = new StringReader(fileName);
                using var fileReader = new StreamReader(fileName, true);
                var reader = XmlReader.Create(fileReader);
                Data = (deserializer.Deserialize(textReader) as FuncData) ?? new FuncData();
                State = EquationState.NotSolved;
                textReader.Close();
            }

XML документ:

     <?xml version="1.0" encoding="UTF-8"?>
<EquationData>
    <F>
        <FDatas>
            <FData Value="3" Power="3" />
            <FData Value="2" Power="2" />
            <FData Value="1" Power="1" />
        </FDatas>
    </F>
    <G>
        <XYCoefs>
            <XYCoef X="-12" Y="10" />
            <XYCoef X="10" Y="-10" />
        </XYCoefs>
    </G>
</EquationData>

При запуске программы выдает ошибку - There is an error in XML document (1, 1)


Ответы (1 шт):

Автор решения: aepot

Немного перемудрили и перепутали StringReader и StreamReader.

using var reader = new StreamReader(fileName); 
var serializer = new XmlSerializer(typeof(FuncData));
Data = (serializer.Deserialize(reader) as FuncData) ?? new FuncData(); 

И не нужно делать Close() когда есть using

→ Ссылка