Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 05.09.2015
Сообщений: 212

Ошибка при десериализации

07.05.2016, 10:10. Показов 762. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пробую считать XML документ.
в try catch выдаёт ошибку - There is an Error in XML document (2,2)
что бы это могло значить ?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
XmlSerializer formatter = new XmlSerializer(typeof(Student[]));
 
 
            using (FileStream fs = new FileStream("Stud.studXml", FileMode.OpenOrCreate))
            {
                Student[] newstudent = (Student[])formatter.Deserialize(fs);
 
                foreach (Student p in newstudent)
                {
                    Console.WriteLine("Ид: {0}\n  Фамилия: {1}\n Пол: {2}\nДень рожд.: {3}\n Курс: {4}\nГруппа: {5}\nСтипендия: {6} ",
                        p.Id, p.Surname, p.Gender, p.BirthDate, p.Course, p.Group, p.Scholarship);
                    Console.WriteLine("\n");
                    spisok1.Add(p);
 
                    Console.WriteLine("\n");
                    }
                    
                }
 
            XmlSerializer formatter2 = new XmlSerializer(typeof(Marks[]));
 
            using (FileStream fs2 = new FileStream("Stud.studXml", FileMode.OpenOrCreate))
            {
                try
                {
                    Marks[] newMark = (Marks[])formatter2.Deserialize(fs2);
                }
                catch (Exception exc)
                {
                    Console.WriteLine(exc.Message);
                }
 
                //foreach (Marks m in newMark)
                //{
                //    Console.WriteLine("Предмет: {0}\n   Оценка{1}", m.Subject, m.Level);
                //}
 
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2016, 10:10
Ответы с готовыми решениями:

Ошибка при десериализации
Привожу код сериализации и отправки объекта: public void SendRezult(object rezult) { using (MemoryStream...

Ошибка при десериализации
Здравствуйте, уважаемые форумчане! Подскажите пожалуйста. Я написал класс который сериализует и десериализует свои объекты. В одном...

Ошибка при десериализации листа
Всем привет! Народ такая проблема, хз вообще не понимаю, что происходит.. помогите разобраться. Есть клиент, который общается с...

5
186 / 184 / 97
Регистрация: 30.04.2016
Сообщений: 478
07.05.2016, 12:04
Здравствуйте!

Показав XML вы быстрее получите ответ.
0
0 / 0 / 1
Регистрация: 05.09.2015
Сообщений: 212
07.05.2016, 16:30  [ТС]
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" encoding="windows-1251"?>
<ArrayOfStudent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Student>
    <Id>1</Id>
    <Surname>Иванов И.И.</Surname>
    <Gender>М</Gender>
    <BirthDate>1991-03-12T00:00:00</BirthDate>
    <Course>1</Course>
    <Group>2</Group>
    <Scholarship>true</Scholarship>
    <Marks>
      <Mark>
        <Subject>Мат. анализ</Subject>
        <Level>5</Level>
      </Mark>
      <Mark>
        <Subject>Алгебра и геометрия</Subject>
        <Level>4</Level>
      </Mark>
    </Marks>
  </Student>
  <Student>
    <Id>2</Id>
    <Surname>Петров П.П.</Surname>
    <Gender>М</Gender>
    <BirthDate>1989-01-23T00:00:00</BirthDate>
    <Course>3</Course>
    <Group>1</Group>
    <Scholarship>false</Scholarship>
    <Marks>
      <Mark>
        <Subject>Информатика</Subject>
        <Level>5</Level>
      </Mark>
    </Marks>
  </Student>
  <Student>
    <Id>3</Id>
    <Surname>Сергеева С.С.</Surname>
    <Gender>Ж</Gender>
    <BirthDate>1988-05-05T00:00:00</BirthDate>
    <Course>4</Course>
    <Group>3</Group>
    <Scholarship>true</Scholarship>
    <Marks />
  </Student>
</ArrayOfStudent>
0
116 / 115 / 64
Регистрация: 03.06.2013
Сообщений: 582
07.05.2016, 16:36
eluzor, было бы не плохо увидеть ваши классы Mark и Student
0
0 / 0 / 1
Регистрация: 05.09.2015
Сообщений: 212
07.05.2016, 20:11  [ТС]
Students

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
using System.Xml.Serialization;
using System.IO;
 
namespace StudXML
{
    [Serializable]
    public class Student
    {
        public string Id { get; set; }
        public string Surname { get; set; }
        public string Gender { get; set; }
        public string BirthDate { get; set; }
        public string Course { get; set; }
        public string Group { get; set; }
        public bool Scholarship { get; set; }
 
 
        public Student()
        {
 
        }
 
        public Student(string id, string surname, string gender, string birthDate, string course, string group, bool scholarship)
        {
            this.Id = id;
            this.Surname = surname;
            this.Gender = gender;
            this.BirthDate = birthDate;
            this.Course = course;
            this.Group = group;
            this.Scholarship = scholarship;
        }
 
        public override string ToString()
        {
            return String.Format("{0}\n    {1}\n  {2}\n  {3}\n  {4}\n  {5}\n  {6}", Id, Surname, Gender, BirthDate, Course,
                Group, Scholarship);
        }
    }
 
    
}
Mark
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
 
using System.Runtime.Serialization;
using System.Xml.Serialization;
using System.IO;
 
namespace StudXML
{
    [Serializable]
    public class Marks
    {
        public string Subject { get; set; }
        public string Level { get; set; }
 
 
        public Marks()
        {
 
        }
 
        public Marks(string subject, string level)
        {
            this.Subject = subject;
            this.Level = level;
        }
 
        public override string ToString()
        {
            return String.Format("{0,-20}    {1,-20}",Subject,Level);
        }
    }
}
0
116 / 115 / 64
Регистрация: 03.06.2013
Сообщений: 582
07.05.2016, 20:23
eluzor, то ли с кодировкой дело, то ли еще с чем-то. Вот создал по вашей структуре классы, всё работает: попробуйте. Зачем вы отдельно пытаетесь достать оценки я не знаю. Они ведь храняться в каждом студенте и от туда их можно легко достать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
using System;
using System.Xml.Serialization;
using System.IO;
using System.Collections.Generic;
 
namespace XMLSerializator
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Student> students = new List<Student>();
            #region Information about student
            List<Mark> marks = new List<Mark>();
            marks.Add(new Mark
            {
                Subject = "Мат. анализ",
                Level = 5
            });
            marks.Add(new Mark
            {
                Subject = "Алгебра и геометрия",
                Level = 4
            });
            students.Add(new Student
            {
                Id = 1,
                Surname = "Иванов И.И.",
                Gender = 'M',
                BirthDate = "1991-03-12T00:00:00",
                Course = 1,
                Group = 2,
                Scholarship = true,
                Marks = marks
            });
            students.Add(new Student
            {
                Id = 1,
                Surname = "Иванов И.И.",
                Gender = 'M',
                BirthDate = "1991-03-12T00:00:00",
                Course = 1,
                Group = 2,
                Scholarship = true,
                Marks = marks
            });
            #endregion
 
 
            SaveAsXmlFormat(students, "studentList.xml");
 
            List<Student> newList = LoadFromXmlFormat<List<Student>>("studentList.xml");
            foreach (var item in newList)
               Console.WriteLine(item.ToString());
            Console.ReadLine();
        }
 
        static void SaveAsXmlFormat(object objGraph, string fileName)
        {
            XmlSerializer xmlFortmat = new XmlSerializer(typeof(List<Student>), new Type[] { typeof(List<Mark>) });
            using (Stream fStream = new FileStream(fileName, FileMode.OpenOrCreate))
            {
                xmlFortmat.Serialize(fStream, objGraph);
            }
            Console.WriteLine("=> Saved in XML format!");
        }
        static T LoadFromXmlFormat<T>(string fileName) where T : new()
        {
            T obj = new T();
            XmlSerializer xmlFortmat = new XmlSerializer(typeof(List<Student>), new Type[] { typeof(List<Mark>) });
            using (Stream fStream = new FileStream(fileName, FileMode.OpenOrCreate))
            {
                obj = (T)xmlFortmat.Deserialize(fStream);
            }
            Console.WriteLine($"=> Load from XML file {fileName}!");
            return obj;
        }
    }
 
    [Serializable]
    public class Student
    {
        public int Id { get; set; }
        public string Surname { get; set; }
        public char Gender { get; set; }
        public string BirthDate { get; set; }
        public int Course { get; set; }
        public int Group { get; set; }
        public bool Scholarship { get; set; }
        public List<Mark> Marks = new List<Mark>();
 
        public override string ToString()
        {
            return string.Format($"Ид: {Id}\n Фамилия: {Surname}\n Пол: {Gender}\nДень рожд.: {BirthDate}\n Курс: {Course}\nГруппа: {Group}\nСтипендия: {Scholarship}");
        }
    }
    [Serializable]
    public class Mark
    {
        public string Subject { get; set; }
        public int Level { get; set; }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2016, 20:23
Помогаю со студенческими работами здесь

Постоянная ошибка при десериализации
Пишу свою игрушку. Сделал загрузку через десериализацию класса из xml. Вот код: public Hero Load_Hero() { ...

Ошибка при десериализации объекта
&lt;?xml version=&quot;1.0&quot;?&gt; &lt;Command xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt; ...

Ошибка в XML файле при десериализации
когда пытюсь десериализовать файл , то выдаёт ошибку - There is an error in XML document (8,5) Подскажите, в чем может быть проблема. ...

При десериализации JSON из файла происходит ошибка
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using...

Ошибка при десериализации json файла в list
Здравствуйте. У меня проблема с десериализации. Вот таким способом я делаю: var json = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru