Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/82: Рейтинг темы: голосов - 82, средняя оценка - 4.72
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086

Для чего нужна сериализация?

16.04.2013, 08:38. Показов 17594. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
из msdn

Сериализация представляет собой процесс преобразования объекта в поток байтов для хранения объекта или передавать его в памяти, базы данных или файл. Ее основное назначение — сохранить состояние объекта для того, чтобы иметь возможность воссоздать его при необходимости. Обратный процесс называется десериализацией.

Не могу понять для чего это нужно можно объяснить на каком нибудь ОЧЕНЬ простом примере для чего она нужна и когда ее стоит использовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.04.2013, 08:38
Ответы с готовыми решениями:

Для чего нужна строчка?
Помогите разобраться, для чего нужна строчка int count = 1; не совсем понимаю, для чего она тут используется вот кусочек кода ...

Для чего нужна операция IndexOf со строками?
Для чего нужна это операция? idx = str2.IndexOf("Один", StringComparison.Ordinal); Если что idx и str2 это переменные типа...

Для чего нужна конвертация в другие форматы?
Здравствуйте! Я бы хотел попросить вас мне рассказать как сделать элементарную программу. Например: Ввод: a= b= Вывод: c= в...

7
 Аватар для akafeanor
60 / 59 / 15
Регистрация: 04.05.2010
Сообщений: 161
16.04.2013, 08:54
Я не очень профессионал, но например нужно скопировать таблицу из ms word в openoffice calc. А вообще более общее- получить данные из одного приложения(thread'а) в другом.
0
[Bicycle Reinventor]
 Аватар для Exerion
332 / 270 / 109
Регистрация: 19.10.2011
Сообщений: 668
Записей в блоге: 2
16.04.2013, 11:17
Предположим, у вас есть класс Телевизор, работа с которым каким-то образом реализована на форме. В процессе работы вы можете настраивать каналы, изменять их порядок/кол-во, всё это хранится в полях и свойствах класса, который вы написали.
И тут программу надо закрыть. При следующем запуске состояние вашего класса "Телевизор" будет установлено по умолчанию, т.е. в ненастроенном виде, без каналов и прочих настроек. И каждый раз при запуске программы всё придётся делать с начала.
А вот чтобы состояние объекта сохранялось от запуска к запуску программы - нужна сериализация объекта до закрытия (грубо говоря, сохранение состояния объекта на жесткий диск), и при следующем запуске программы десериализация (считывание объекта с жёсткого диска).
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
16.04.2013, 11:41  [ТС]
Цитата Сообщение от Exerion Посмотреть сообщение
(грубо говоря, сохранение состояния объекта на жесткий диск), и при следующем запуске программы десериализация (считывание объекта с жёсткого диска).
Что мешает мне при закрытии программы создать файл скажем config.ini и записать туда
1 канал - .....
2 канал - ....
.....
И при открытии программы считать снова не используя всякие сериализации?

Кто объяснит доходчиво для чего нужна сериализация
0
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
16.04.2013, 11:53
Цитата Сообщение от EVG-1980 Посмотреть сообщение
Что мешает мне при закрытии программы создать файл скажем config.ini и записать туда
1 канал - .....
2 канал - ....
.....
И при открытии программы считать снова не используя всякие сериализации?

Кто объяснит доходчиво для чего нужна сериализация
т.е. вы создаете объект "телевизор", сохраняете значения его полей в файл, при следующей загрузке создаете новый объект телевизор, считываете значения его полей из файла и присваиваете полям объекта "телевизор"

вы не делаете этого "не используя всякие сериализации", вы просто в данном случае делаете свой алгоритм сериализации для объекта "телевизор" - так тоже можно, только зачем если все эти действия УЖЕ прописаны в стандартном алгоритме сериализации?
1
 Аватар для CSharp
51 / 51 / 14
Регистрация: 12.01.2013
Сообщений: 779
16.04.2013, 12:41
Сериализация предоставляет несколько полезных возможностей:
метод реализации сохраняемости объектов, который более удобен, чем запись их свойств в текстовый файл на диск и повторная сборка объектов чтением файлов;
метод осуществления удалённых вызовов процедур, как, например, в SOAP;
метод распространения объектов, особенно в технологиях компонентно-ориентированного программирования, таких как COM и CORBA;
метод обнаружения изменений в данных, изменяющихся со временем.
Для наиболее эффективного использования этих возможностей необходимо поддерживать независимость от архитектуры. Например, необходимо иметь возможность надёжно воссоздавать сериализованный поток данных, независимо от порядка байтов, использующегося в данной архитектуре. Это значит, что наиболее простая и быстрая процедура прямого копирования участка памяти, в котором размещается структура данных, не может работать надёжно для всех архитектур. Сериализация структур данных в архитектурно-независимый формат означает, что не должно возникать проблем из-за различного порядка следования байт, механизмов распределения памяти или различий представления структур данных в языках программирования.
Любой из схем сериализации присуще то, что кодирование данных последовательно по определению, и извлечение любой части сериализованной структуры данных требует, чтобы весь объект был считан от начала до конца и воссоздан. Во многих приложениях такая линейность полезна, потому что позволяет использовать простые интерфейсы ввода/вывода общего назначения для сохранения и передачи состояния объекта. В приложениях, где важна высокая производительность, может иметь смысл использовать более сложную, нелинейную организацию хранения данных.
1
[Bicycle Reinventor]
 Аватар для Exerion
332 / 270 / 109
Регистрация: 19.10.2011
Сообщений: 668
Записей в блоге: 2
16.04.2013, 17:22
Цитата Сообщение от EVG-1980 Посмотреть сообщение
Что мешает мне при закрытии программы создать файл скажем config.ini и записать туда
1 канал - .....
2 канал - ....
.....
И при открытии программы считать снова не используя всякие сериализации?
Ничто не мешает вам, но вы сделаете тоже, что и сама сериализация, только изобретёте велосипед.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
16.04.2013, 22:29
EVG-1980, сериализация — это перевод объекта, хранящегося в памяти программы, в любой другой формат: текстовый файл, базу данных, строку (XML, JSON, XAML и т.д.).
Нужна, соответственно, там, где нужно иметь объект вне контекста работы программы. Например, передать его по сети.
То, что вы предлагаете — это тоже сериализация.

CSharp, вы хоть ссылку ставьте
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2013, 22:29
Помогаю со студенческими работами здесь

Подскажите, для чего нужна эта строчка?
Не совсем понятно, для чего нужна строчка public Medicament(){} Если ее удалить, то вылезает ошибка "Отсутствует аргумент,...

IPEndPoint - Что такое локальная конечная точка и для чего она нужна
Что такое локальная конечная точка и для чего она нужна. Если можно объясните как можно проще. Спасибо. newbiecoderr, не дублируйте...

Что такое ссылки, и для чего нужна иерархия классов при взаимодействии с ссылками
В том случае когда иерархия однолинейная т.е. допустим класс Point < Square < Reactangle И что такое приведенный тип? (если такое...

Нужна идея написания чего-нибудь интересного
Здравствуйте, форумчане. Являюсь студентом, поставлена задача написать приложение использую 3 технологии от Microsoft. Подкиньте пожалуйсте...

Просто символьная переменная нужна, чего мудрят MS?
Это же надо домудриться разработчикам "передового" языка... Невозможно просто работать с символом. То что не вопрос в Pascal, Pethon, C,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru