0
Я бы не спросил, но я понятия не имею, что случилось снова. Iv сохранены транспортные средства в файл XML, и когда пользователь открывает программу я хочу deserialize.when я запустить его я получаю это на последней строке в методе загрузкиXamlParseException при десериализации файла xml
'System.Windows.Markup.XamlParseException' {"'The invocation of the constructor on type 'SD2CW2.MainWindow' that matches the specified binding constraints threw an exception.'}
это мои загрузки/сохранения методы
private void Load()
{
XmlSerializer SerializerObj = new XmlSerializer(typeof(Vechicle));
// Reading a file requires a FileStream.
FileStream fs = new FileStream(filepath);
Vechicle = ((List<Vechicle>)SerializerObj.Deserialize(fs));
}
//Save the objects
private void Save()
{
// Create a new file stream to write the serialized object to a file
TextWriter WriteFileStream = new StreamWriter(filepath);
Type [] extraTypes= new Type[2];
extraTypes[0] = typeof(Tour);
extraTypes[1] = typeof(Vechicle);
// Create a new XmlSerializer instance with the type of List<Journey> and my addition types
XmlSerializer SerializerObj = new XmlSerializer(typeof(List<Journey>),extraTypes);
//serialising my journey list
SerializerObj.Serialize(WriteFileStream,Journey);
SerializerObj = new XmlSerializer(typeof(List<Vechicle>));
//serialising my vechicle list
SerializerObj.Serialize(WriteFileStream, Vechicle);
// Cleanup
WriteFileStream.Close();
}
этот XML
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfJourney xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><?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>1</Registration>
</Vechicle>
<Vechicle>
<Id>2</Id>
<Registration>2</Registration>
</Vechicle>
<Vechicle>
<Id>3</Id>
<Registration>3</Registration>
Почему вы сериализуете два разных объекта (Путешествие, Транспортное средство) в один и тот же файл? Только одна из этих операций Serialize сопровождается флешем на диск; это может быть причиной недостающих тегов, упомянутых в ответе @splrs. – groverboy
@groverboy iv изменил его, чтобы он сериализовал два файла xml, теперь теги правильны, но им все еще не удается загрузить. – James
Если теги были неправильными, как указано в ответе @splrs, тогда вы должны принять этот ответ. Если вы все еще не можете загрузить, создайте новый вопрос и опубликуйте обновленный код. – groverboy