У меня есть объект C#, который содержит большой список (10-100 МБ) и некоторые другие свойства. Я хочу сериализовать объект, но я не хочу сериализовать список. есть ли простой способ сделать это?сериализовать часть объекта в C#
Спасибо!
У меня есть объект C#, который содержит большой список (10-100 МБ) и некоторые другие свойства. Я хочу сериализовать объект, но я не хочу сериализовать список. есть ли простой способ сделать это?сериализовать часть объекта в C#
Спасибо!
Поскольку это помечено xml, это может быть столь же просто, как добавление [XmlIgnore]
соответствующему свойству:
[XmlIgnore]
public List<Foo> Items {get;set;}
Тогда просто использовать XmlSerializer
как обычно.
Если он должен быть управляемым (иногда да, иногда нет), то альтернатива не добавить:
public bool ShouldSerializeItems() {
// your logic here
}
Эта модель признана многими сериализаторов, XmlSerializer
включены.
Спасибо, первый вариант, похоже, работает :) Не могли бы вы снова объяснить второй? –
@Amir Сериализатор в основном проверяет несколько шаблонов, основанных на имени, которые он использует. Если существует общедоступный метод BULSSULIALize *() (для соответствующего именованного члена), он вызывает этот метод во время сериализации, чтобы решить, следует ли сериализовать этот член или нет –
Simiarly, сериализатор проверяет свойство с именем '* Specified' (для соответствующий именованный член). – Brian
Если вы имеете в виду сериализацию, загружающую объект из базы данных, то я могу порекомендовать NHibernate
, вы просто отмечаете, вы хотите включить ленивую загрузку в Списке, и ваш объект вернется, с Items
установлен в null (и если вы все еще находятся в транзакции, Items
загрузит после и только после попытки доступа к нему, если вы уже не работаете с транзакцией, вы получите исключение nullPointer, я думаю) ... но в принципе, Lazy-loading в любом его виде, безусловно, является принципом , вы должны следить.
EDIT: пропустил теги, позор мне
Сериализация обычно означает «к blob/clob». Работа с базами данных, как правило, «настойчивость/материализация». Но да, термины иногда используются довольно взаимозаменяемо. –
Какой тип сериализации вы хотите? XML, Binary, ... –
на данный момент его XML –