Хочется ускорить процесс запуска нашего приложения за счет отказа от компиляции десятка XmlSerializer' в runtime. Переписал часть из них, реализовав ручную сериализацию через IXmlSerializable, но для сложных часто изменяемых классов это не лучшее решение. Сижу сейчас и думаю, как бы сделать автоматическую прекомпиляцию этих сериализаторов? Напрашивается решение через навороченый pre-build step, но может, есть что-то попроще? Кто-нибудь этим занимался?
Здравствуйте, Andy77, Вы писали:
A>Хочется ускорить процесс запуска нашего приложения за счет отказа от компиляции десятка XmlSerializer' в runtime. Переписал часть из них, реализовав ручную сериализацию через IXmlSerializable, но для сложных часто изменяемых классов это не лучшее решение. Сижу сейчас и думаю, как бы сделать автоматическую прекомпиляцию этих сериализаторов? Напрашивается решение через навороченый pre-build step, но может, есть что-то попроще? Кто-нибудь этим занимался?
Здравствуйте, Andy77, Вы писали:
A>Сижу сейчас и думаю, как бы сделать автоматическую прекомпиляцию этих сериализаторов? Напрашивается решение через навороченый pre-build step, но может, есть что-то попроще? Кто-нибудь этим занимался?
Этот способ работает для .NET1
Если в machine.config включить
то в папке %temp% должны появиться cs файлы с кодом сериализаторов (который генерирует XmlSerializer), естесственно для этого надо запустить приложение. Видимо для автоматизации этого процесса придется написать каку-то дополнительную приблуду.
Здравствуйте, SiAVoL, Вы писали:
SAV>...то в папке %temp% должны появиться cs файлы с кодом сериализаторов (который генерирует XmlSerializer), естесственно для этого надо запустить приложение. Видимо для автоматизации этого процесса придется написать каку-то дополнительную приблуду.
Ага, код сериализаторов я уже видел, вот как раз автоматизация и интересна.
Докладываю. Установил, не заработало, скачал исходники, начал отлаживать — оказывается, после установки FW 1.1 SP1 имена классов, генерируемые стандартным сериализатором, поменялись, из-за чего и возникал OutOfBoundsException Простой подстановкой строки всё починилось