Дессериализация 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