Я получил схему XML, для которой я использовал xsd.exe для создания класса FooClass
.
Я получаю XML-запросы от хоста, которые я получаю из каталога, и использую XmlSerializer.Deserialize()
, чтобы получить экземпляр моего FooClass
.
Что ж, до сих пор это работало отлично, и все еще работает, но внезапно я начал получать файлы XML большего размера (около 300 КБ), и время, которое требуется для Deserialize()
, неприемлемо! Загрузка того же XML-файла с XMLTextReader()
занимает миллисекунды, а время десериализации составляет около 1 минуты и 30 секунд!
Так что я подумал, что я буду использовать XMLReader для чтения XML-файла и сборки FooClass
самостоятельно!
Но прежде чем я начну переделывать весь мой код, я хотел бы спросить вас, есть ли способ использовать XmlSerializer.Deserialize()
, который был бы быстрее?
Я не уверен, что сборка XMLSerializer мне здесь сильно поможет?
вот мой код, который будет вызываться в цикле для каждого файла
using (MemoryStream ms = new MemoryStream(xmldata)
{
XmlSerializer sz = new XmlSerializer(typeof(FooClass));
foo = (FooClass)sz.Deserialize(ms);
}
Спасибо заранее,
AK