Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 04.11.2012
Сообщений: 53

Как сериализовать и десериализовать объекты классов?

25.12.2013, 00:05. Показов 1208. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеются классы


Pozition.cs
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
 
namespace PetriNet_v1
{
    class Pozition : Element 
    {
        public List<Tranzition> incomingTranzitions;
        public List<Tranzition> outcomingTranzitions;
        public int CountChips = 0;
        public Pozition()
        {
            incomingTranzitions = new List<Tranzition>();
            outcomingTranzitions = new List<Tranzition>();
        }
        public Pozition(int left, int top)
        {
            location.X = left;
            location.Y = top;
            incomingTranzitions = new List<Tranzition>();
            outcomingTranzitions = new List<Tranzition>();
        }
        public void AddIncomingTranzition(Tranzition value, bool recursive)
        {
            incomingTranzitions.Add(value);
            if (recursive)
                value.AddOutcomingPozition(this, false);
        }
        public void AddOutcomingTranzition(Tranzition value, bool recursive)
        {
            outcomingTranzitions.Add(value);
            if (recursive)
                value.AddIncomingPozition(this, false);
        }
        public override void Paint(PictureBox PB)
        {
            Graphics gr = PB.CreateGraphics();
            gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            gr.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
            gr.FillEllipse(Brushes.WhiteSmoke, location.X, location.Y, WIDTH, HEIGTH);
            Font font = new Font("Arial", 13);
            gr.DrawString(name, font, new SolidBrush(Color.FromArgb(100, 100, 100)), new PointF(location.X + 15, location.Y - 20));
            font.Dispose();
            font = new Font("Arial", 15);
            gr.DrawString(CountChips.ToString(), font, new SolidBrush(Color.FromArgb(100, 100, 100)), new PointF(location.X + (WIDTH - gr.MeasureString(CountChips.ToString(), font).Width) / 2, location.Y + (HEIGTH - gr.MeasureString(CountChips.ToString(), font).Height) / 2));
            font.Dispose();
            gr.Dispose();
        }
    }
}
Tranzition.cs
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
 
namespace PetriNet_v1
{
    class Tranzition : Element 
    {
        public List<Pozition> incomingPozitions;
        public List<Pozition> outcomingPozitions;
        public int Xred =0, Yred=0;
        Color color;
        public Tranzition()
        {
            incomingPozitions = new List<Pozition>();
            outcomingPozitions = new List<Pozition>();
        }
        public Tranzition(int left, int top)
        {
            location.X = left;
            location.Y = top;
            incomingPozitions = new List<Pozition>();
            outcomingPozitions = new List<Pozition>();
        }
        public void AddIncomingPozition(Pozition value, bool recursive)
        {
           if (recursive)
                value.AddIncomingTranzition(this, false);
           incomingPozitions.Add(value);
        }      
        public void AddOutcomingPozition(Pozition value, bool recursive)
        {
            if (recursive)
                value.AddIncomingTranzition(this, false);
            outcomingPozitions.Add(value);
        }
        public override void Paint(PictureBox PB)
        {
            Graphics gr = PB.CreateGraphics();
            gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            gr.CompositingMode = CompositingMode.SourceOver;
            color = Color.Black;
            gr.DrawLine(new Pen(color, 5), new Point(location.X+WIDTH / 2, location.Y+HEIGTH), new Point(location.X+WIDTH / 2, location.Y));
            gr.DrawString(name, new Font("Arial", 12), new SolidBrush(Color.FromArgb(100, 100, 100)), new PointF(location.X - 7, location.Y - 20));
            Pen pen = new Pen(Color.Red, 3);
            pen.SetLineCap(LineCap.NoAnchor, LineCap.ArrowAnchor, DashCap.Triangle);
            foreach (Pozition p in incomingPozitions)
            {
                gr.DrawLine(pen,
                      new Point(p.location.X + Element.WIDTH / 2, p.location.Y + Element.HEIGTH / 2),
                      new Point(this.location.X + Element.WIDTH / 2, this.location.Y + Element.HEIGTH / 2));
            }
            pen.Color = Color.Blue;
            foreach (Pozition p in outcomingPozitions)
            {
                gr.DrawLine(pen,
                    new Point(this.location.X + Element.WIDTH / 2, this.location.Y + Element.HEIGTH / 2),
                    new Point(p.location.X + Element.WIDTH / 2, p.location.Y + Element.HEIGTH / 2));
            }
            
            pen.Dispose();
        }
    }
}
Как их сериализовать, десериализовать в XML файл
Помогите пожалуйста.. Буду очень признателен..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2013, 00:05
Ответы с готовыми решениями:

Сериализовать/десериализовать объекты, одним из членов которого является SolidBrush
Мне нужно сериализовать/десериализовать объекты типа SomeType, одним из членов которого является св-во типа SolidBrush. При попытке...

Как сериализовать и десериализовать значения элементов управления из всех диалогов через MainForm
Здравствуте! Подскажите способ решения такой проблемы: есть главная форма MainForm на которой имеется dataToolStripMenuItem из которого...

Как сериализовать/десериализовать экземпляры классов в файл
Проблема следующая: Имеется три класcа: class Class1 { // Список полей и методов } class Class2 { // Список полей и...

1
334 / 270 / 18
Регистрация: 19.01.2011
Сообщений: 597
25.12.2013, 11:35
О сериализации, десериализации в XML и на форуме здесь и в "гугле" просто миллион тонн информации. Что именно у Вас не работает или в чем ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.12.2013, 11:35
Помогаю со студенческими работами здесь

Какие объекты можно сериализовать и десериализовать в XML / JSON?
Здравствуйте. Как можно определять какие объекты можно серилизовать и десирилизовать в XML или JSON формат. Знаю точно что такие типы...

Как сериализовать и десериализовать xml файл
Как сериализовать и десериализовать такой файл. Будет считвааться файл, в котором будет изменено какое либо значение, и файл перезапишется....

Как правильно сериализовать и десериализовать коллекцию объектов разных типов?
имеются классы, допустим private abstract class Shape { public int X { get; set; } public int Y {...

Как сериализовать/десериализовать одновременно список, элемент своего класса и переменную?
Здравствуйте! В моей программе есть примерно следующие переменные public List&lt;MyElement&gt; Structure= new...

Сериализовать/Десериализовать xml объект
Доброго времени суток, форумчане! Подскажите пожалуйста, как сериализовать/десериализовать xml объект вида &lt;root&gt; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru