C # сериализует только значения в поток байтов - PullRequest
0 голосов
/ 18 августа 2011

Есть ли возможность автоматически сериализовать свойства класса в массив или поток byte [].

Stream stream = File.Open(@"C:/traiBin.bin", FileMode.Create);
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, this.rcpt);
stream.Close();

В этом примере выше сериализуется весь класс, включая пространства имен, имя класса, имена переменных и т. Д.нет автоматизированного решения, оно будет делать это вручную.

С уважением, Марк

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

Реализация протобуфа Марка Грэвелла поддерживает атрибутивную модель, а также DataContracts - protobuf также довольно прост, когда речь идет об окончательном размере данных.

0 голосов
/ 18 августа 2011

Я думаю, что вы должны:

Или реализовать свой собственный механизм сериализации (может быть не так сложно, исходя из ваших требований), поэтому в потоке у вас будет вид заголовка, который идентифицирует сохраненный тип и после типапоток данных, после другого заголовка и его тип потока данных снова, и так далее ...

Или вы можете использовать что-то вроде этого http://www.codeproject.com/KB/cs/generic_deep_cloning.aspx.Просто пример сериализации, которую автор статьи использует для глубокого клонирования.

...