Я использую массив байтов для передачи объектов, примитивных данных по сети и обратно. Я адаптирую подход java, имея реализацию типа ISerializable, которая содержит два метода, как часть интерфейса, ReadObjectData и WriteObjectData. Любой класс, использующий этот интерфейс, записывает дату в массив байтов. Что-то вроде этогоСериализация байтового массива против файла XML
class SerializationType:ISerializable
{
void ReadObjectData (/*Type that manages the write/reads into the byte array*/){}
void WriteObjectData(/*Type that manages the write/reads into the byte array*/){}
}
После того, как запись завершена для всего объекта, я посылаю массив сети.
Это фактически двузначный вопрос. Правильный ли способ передачи данных по сети для максимальной эффективности (с точки зрения скорости, размера)?
Используете ли вы этот подход для записи объектов в файл, в отличие от типичной сериализации XML?
Редактировать # 1
Joel Coehoorn упоминается BinaryFormatter. Я никогда не использовал этот класс. Не могли бы вы разработать, предоставить хороший пример, ссылки, рекомендации, текущую практику - в дополнение к тому, что я сейчас вижу в msdn?
Ницца ... продумайте этот класс, пожалуйста .... – 2009-02-20 17:55:37
Это может не сработать, если требуется конкретный макет в двоичном массиве. – 2009-02-20 18:33:01
Правильно: он принимает на себя .Net на обоих концах, или что любой участник, не являющийся участником, будет анализировать формат .Net. –