Есть ли ярлык для двоичного сериализации каждого свойства в объекте?

StackOverflow https://stackoverflow.com/questions/3428916

Вопрос

Если есть объект, в котором Каждая публичная собственность должна быть сериализована и свойства просты (просто номера или строки или объекты, уже реализующие ISerializable), есть ли простой способ сделать это без необходимости создавать GetObjectData(SerializationInfo info, StreamingContext context) и конструктор принимает SerializationInfo Как аргумент каждый раз?

Я знаю, что это можно сделать вручную с отражением, но есть ли магический метод внутри .NET Framework, чтобы сделать это?


Так что правильный ответ:

Не пытайтесь реализовать Iserializable - это для пользовательской сериализации. Вместо этого добавьте атрибут [Serializable] прямо перед декларацией класса.

Это было полезно?

Решение

Попробуйте классу бинарформисно - должен делать то, что вам нужно

Редактировать: Вы не получаете от BinaryFormatter - это утилиты, который вы используете для выполнения вашей сериализации. Вот пример, скопированный из документов

MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "Some String";
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top