Прекомпиляция xml-сериализаторов
От: Andy77 Ниоткуда  
Дата: 01.12.05 20:36
Оценка:
Хочется ускорить процесс запуска нашего приложения за счет отказа от компиляции десятка XmlSerializer' в runtime. Переписал часть из них, реализовав ручную сериализацию через IXmlSerializable, но для сложных часто изменяемых классов это не лучшее решение. Сижу сейчас и думаю, как бы сделать автоматическую прекомпиляцию этих сериализаторов? Напрашивается решение через навороченый pre-build step, но может, есть что-то попроще? Кто-нибудь этим занимался?
Re: Прекомпиляция xml-сериализаторов
От: sardanapal США  
Дата: 01.12.05 23:28
Оценка: 28 (4)
Здравствуйте, Andy77, Вы писали:

A> Кто-нибудь этим занимался?


здесь
Re: Прекомпиляция xml-сериализаторов
От: Mobile_Michael  
Дата: 02.12.05 02:14
Оценка: 20 (3)
Здравствуйте, Andy77, Вы писали:

A>Хочется ускорить процесс запуска нашего приложения за счет отказа от компиляции десятка XmlSerializer' в runtime. Переписал часть из них, реализовав ручную сериализацию через IXmlSerializable, но для сложных часто изменяемых классов это не лучшее решение. Сижу сейчас и думаю, как бы сделать автоматическую прекомпиляцию этих сериализаторов? Напрашивается решение через навороченый pre-build step, но может, есть что-то попроще? Кто-нибудь этим занимался?


в VS 2005 выбрать Generate serializer -- Always
Re: Прекомпиляция xml-сериализаторов
От: SiAVoL Россия  
Дата: 02.12.05 07:18
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Сижу сейчас и думаю, как бы сделать автоматическую прекомпиляцию этих сериализаторов? Напрашивается решение через навороченый pre-build step, но может, есть что-то попроще? Кто-нибудь этим занимался?

Этот способ работает для .NET1
Если в machine.config включить
<system.diagnostics>
    <switches>
        <add name="XmlSerialization.Compilation" value="4"/>
    </switches>
</system.diagnostics>

то в папке %temp% должны появиться cs файлы с кодом сериализаторов (который генерирует XmlSerializer), естесственно для этого надо запустить приложение. Видимо для автоматизации этого процесса придется написать каку-то дополнительную приблуду.
... << RSDN@Home 1.2.0 alpha rev. 569>>
Re[2]: Прекомпиляция xml-сериализаторов
От: Andy77 Ниоткуда  
Дата: 02.12.05 18:04
Оценка:
Здравствуйте, SiAVoL, Вы писали:

SAV>...то в папке %temp% должны появиться cs файлы с кодом сериализаторов (который генерирует XmlSerializer), естесственно для этого надо запустить приложение. Видимо для автоматизации этого процесса придется написать каку-то дополнительную приблуду.


Ага, код сериализаторов я уже видел, вот как раз автоматизация и интересна.
Re[3]: Прекомпиляция xml-сериализаторов
От: TK Лес кывт.рф
Дата: 02.12.05 18:21
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Ага, код сериализаторов я уже видел, вот как раз автоматизация и интересна.


Поищи утилиту SGen.exe
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Прекомпиляция xml-сериализаторов
От: Andy77 Ниоткуда  
Дата: 02.12.05 19:47
Оценка:
Здравствуйте, TK, Вы писали:

TK>Поищи утилиту SGen.exe


Я забыл указать, что решение нужно под FW 1.1
Сейчас попробую http://sourceforge.net/projects/mvp-xml, спасибо sardanapal за ссылку!
Re[5]: Прекомпиляция xml-сериализаторов
От: Andy77 Ниоткуда  
Дата: 02.12.05 21:10
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Сейчас попробую http://sourceforge.net/projects/mvp-xml, спасибо sardanapal за ссылку!


Докладываю. Установил, не заработало, скачал исходники, начал отлаживать — оказывается, после установки FW 1.1 SP1 имена классов, генерируемые стандартным сериализатором, поменялись, из-за чего и возникал OutOfBoundsException Простой подстановкой строки всё починилось
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.