Сериализация/десериализация XML для каждого элемента

Я разрабатываю каталог автомобилей, и мне нужно использовать XML-файлы для хранения. В предыдущих проектах я вручную редактировал файлы XML с помощью Linq. Однако я столкнулся с сериализацией XML и думаю, что это может быть лучшим подходом. Каждый элемент в каталоге будет иметь тип CarItem и содержать различные атрибуты. В каталоге может быть несколько сотен автомобилей, и я беспокоюсь о производительности. Если я десериализую файл XML, будут ли сразу созданы экземпляры всех CarItems? Есть ли способ выбрать, какой объект будет десериализован на основе параметров? Например, я хотел бы сказать: «Если атрибут цвета автомобиля красный, то десериализовать только красные CarItems в объекты».

Спасибо за любые предложения


person XSL    schedule 08.07.2010    source источник
comment
Привет, Superexsl. Можете ли вы уточнить с помощью кода, как вы собираетесь десериализовать? Есть несколько способов сделать это, и ответ может зависеть от вашего подхода.   -  person Mick N    schedule 08.07.2010
comment
Привет Деревья. Я еще не запрограммировал какой-либо код сериализации/десериализации, поэтому я открыт для любых предложений. Спасибо за ответ.   -  person XSL    schedule 08.07.2010


Ответы (2)


Есть довольно много сообщений с хорошими примерами того, как вы можете контролировать то, что вы извлекаете и создаете в объекты/скаляры, используя XDocument.

Сообщение Шона Остера в этот поток, я считаю, очень близок к тому, что вы хотите использовать linq. Вы можете легко добавить пункты where в соответствии с вашими требованиями.

person Mick N    schedule 08.07.2010
comment
Кажется, что это должно сделать работу. Спасибо за помощь! - person XSL; 08.07.2010

Да, все они будут созданы. Тем не менее, несколько сотен объектов не имеют большого значения для класса с несколькими простыми полями. Попробуйте и проверьте производительность.

person Pavel Tupitsyn    schedule 08.07.2010
comment
Спасибо за ответ. В этом случае я надеюсь, что может быть лучший подход, чем прямая сериализация/десериализация, чтобы иметь возможность повысить производительность (поскольку это на мобильном устройстве). - person XSL; 08.07.2010