Iv Сериализовал список и список для разделения файлов xml с помощью этого метода.C# xamlParseException при десериализации файла xml
private void Save(String filePath,Type saveType)
{
// Create a new file stream to write the serialized object to a file
TextWriter WriteFileStream = new StreamWriter(@filePath);
// Create a new XmlSerializer instance with the type of List<Journey> and my addition types
if (saveType == typeof(List<Vechicle>))
{
XmlSerializer SerializerObj = new XmlSerializer(saveType);
//serialising my vechicle list
SerializerObj.Serialize(WriteFileStream, Vechicle);
}
else
{
if (saveType == typeof(List<Journey>))
{
Type [] extraTypes= new Type[1];
extraTypes[0] = typeof(Tour);
XmlSerializer SerializerObj = new XmlSerializer(saveType,extraTypes);
SerializerObj.Serialize(WriteFileStream, Journey);
}
}
// Cleanup
WriteFileStream.Close();
}
это пример файла vechicls XML
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfVechicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Vechicle>
<Id>1</Id>
<Registration>a</Registration>
</Vechicle>
<Vechicle>
<Id>2</Id>
<Registration>b</Registration>
</Vechicle>
<Vechicle>
<Id>3</Id>
<Registration>c</Registration>
</Vechicle>
</ArrayOfVechicle>
Проблема возникает, когда им пытаются загрузить дату Vechicle обратно в мой список, используя этот метод
private void Load()
{
XmlSerializer SerializerObj = new XmlSerializer(typeof(Vechicle));
FileStream fs = new FileStream(filepath, FileMode.Open);
Vechicle = ((List<Vechicle>)SerializerObj.Deserialize(fs));
}
я получаю исключение в последней строке метода загрузки. «System.Windows.Markup.XamlParseException» произошел в PresentationFramework.dll «Вызов конструктора типа SD2CW2.MainWindow, который соответствует указанным ограничениям привязки, сделал исключение».
Является ли 'Load()' вызывается в конструкторе 'SD2CW2.MainWindow'? Если это так, вам может потребоваться дважды проверить путь к файлу. Вы выбрали правильный путь к файлу? Или, может быть, вы можете вставить немного больше информации об исключениях. – Colin