Задать вопрос
Neuroware
@Neuroware
Программист в свободное от работы время

Возможна ли частичная десериализация?

В одном из приложений у меня сериализуются структуры, в которых кроме всего прочего лежат достаточно большие массивы byte[](суммарный объем может достигать гигабайт), возник вопрос, реально ли десериализовать структуру не полностью, без этих массивов, но с возможностью подгружать их по мере надобности с диска?
Пока единственным решением видится последовательная запись массивов в отдельный файл, а в структуре хранить только точку "начала массива" и длину, но это не очень удобно вроде бы.
  • Вопрос задан
  • 616 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
vvovas
@vvovas
Все зависит от того, чем сериализуете.
Как минимум в xmlSerializer есть аттрибут xmlignore, который можно применить к свойству класса и это свойство не будет десериализоваться.
Чтобы считать данные потом, можно создать еще один класс с единственным свойством, соответствующим массиву, и десериализовать этот объект.

что-то типа:
class FullIObject{
    //some properties
   
    [XmlIgnore]
    public byte[] Data{get;set;}
}

class DataArray{
    public byte[] Data{get;set;}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы