При попытке сериализировать файл возникла такая ошибка.
Вот код:
SerializableModel1 serializableModel1 = new SerializableModel1();
SerializableModel2 serializableModel2 = new SerializableModel2();
DataContractJsonSerializer formatter1 = new DataContractJsonSerializer(typeof(SerializableModel1));
DataContractJsonSerializer formatter2 = new DataContractJsonSerializer(typeof(SerializableModel2));
SerializableModel1 firstModel;
SerializableModel2 secondModel;
using (FileStream file = new FileStream(@"G:\task2.json", FileMode.OpenOrCreate))
{
formatter1.WriteObject(file, serializableModel1);
formatter2.WriteObject(file, serializableModel2);
}
using (FileStream file = new FileStream(@"G:\task2.json", FileMode.OpenOrCreate))
{
firstModel = formatter1.ReadObject(file) as SerializableModel1;
secondModel = formatter2.ReadObject(file) as SerializableModel2;
}
Вот здесь - https://stackoverflow.com/questions/2668626/error-converting-json-to-net-object-in-asp-net,http:// - ecloud.net/error-converting-json-to-net-object-in-asp-net.html
и здесь - http://codecloud.net/error-converting-json-to-net-object-in-asp-net.html
у ребят возникали подобные вопросы, так что можете полазить там на досуге, посмотреть, может что-то интересное найдёте...
Вообще, ошибка мне незнакома, не знаю в чём именно проблема...
Хотя уже на первый взгляд в коде есть проблема. Вы, когда форматтером считываете данные с файла и приводите их к своему типу SerializableModel1 или 2 создаёте 2 потока и через оба обращаетесь к файлу. Так делать нельзя уже только потому что к файлу одновременно может обратиться только один поток (если это не асинхронный вызов, а у вас он явно не асинхронный). По этому я бы на вашем месте разбил бы это чтение на 2 юзинга:
SerializableModel1 serializableModel1 = new SerializableModel1();
SerializableModel2 serializableModel2 = new SerializableModel2();
DataContractJsonSerializer formatter1 = new DataContractJsonSerializer(typeof(SerializableModel1));
DataContractJsonSerializer formatter2 = new DataContractJsonSerializer(typeof(SerializableModel2));
SerializableModel1 firstModel;
SerializableModel2 secondModel;
using (FileStream file = new FileStream(@"G:\task2.json", FileMode.OpenOrCreate))
{
formatter1.WriteObject(file, serializableModel1);
formatter2.WriteObject(file, serializableModel2);
}
using (FileStream file = new FileStream(@"G:\task2.json", FileMode.OpenOrCreate))
{
firstModel = formatter1.ReadObject(file) as SerializableModel1;
}
using (FileStream file = new FileStream(@"G:\task2.json", FileMode.OpenOrCreate))
{
secondModel = formatter2.ReadObject(file) as SerializableModel2;
}