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

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

В одном из приложений у меня сериализуются структуры, в которых кроме всего прочего лежат достаточно большие массивы byte[](суммарный объем может достигать гигабайт), возник вопрос, реально ли десериализовать структуру не полностью, без этих массивов, но с возможностью подгружать их по мере надобности с диска?
Пока единственным решением видится последовательная запись массивов в отдельный файл, а в структуре хранить только точку "начала массива" и длину, но это не очень удобно вроде бы.
  • Вопрос задан
  • 608 просмотров
Пригласить эксперта
Ответы на вопрос 1
vvovas
@vvovas
Все зависит от того, чем сериализуете.
Как минимум в xmlSerializer есть аттрибут xmlignore, который можно применить к свойству класса и это свойство не будет десериализоваться.
Чтобы считать данные потом, можно создать еще один класс с единственным свойством, соответствующим массиву, и десериализовать этот объект.

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

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

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

Войти через центр авторизации
Похожие вопросы