Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Сериализация


Автор: Хоббит 24.6.2006, 13:23
Думаю вот как еще можно сохранить класс. Что такое сериализация в двух словах подскажите пожалуйста.... по знанию php с помощью этого можно преобраховать класс в строку.. а потом обратно

А если класс содержит в себе поля классы - они сохраняться? 

Автор: mr.DUDA 24.6.2006, 15:03
Цитата(Хоббит @  24.6.2006,  13:23 Найти цитируемый пост)
 Что такое сериализация в двух словах подскажите пожалуйста....

Сохранение и восстановление объектов в/из последовательную форму (поток). Есть два основных вида сериализации: бинарная и XML-сериализация. Для первого типа сериализации, класс достаточно пометить атрибутом [Serializable] и сохранять/восстанавливать объекты BinaryFormatter-ом. XML-сериализация использует класс XmlSerializer. Коренное отличие между XML- и бинарной сериализацией состоит в том, что в XML сохраняются теги и ничего более, а при бинарной сериализации в поток сохраняется полная инфа о классе и сборке. То есть, сохранить объект одного класса а затем восстановить его в объект другого класса (или даже того же самого, но находящегося в другой сборке) нельзя, используя бинарную сериализацию. С другой стороны, XML-сериализация содержит ряд ограничений. Например, все сериализуемые свойства и поля должны быть public (свойства к тому же должны объявить открытый set-аксессор).

Цитата(Хоббит @  24.6.2006,  13:23 Найти цитируемый пост)
по знанию php с помощью этого можно преобраховать класс в строку.. а потом обратно

Здесь почти то же самое. Только при бинарной получается абсолютно неудобоваримый набор байтов, а при XML - соответственно xml-файл.

Цитата(Хоббит @  24.6.2006,  13:23 Найти цитируемый пост)
А если класс содержит в себе поля классы - они сохраняться? 

Да, объект сохраняется полностью (естественно, что поля и свойства должны быть сериализуемых типов). 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)