Я делаю некоторый материал с классом XMLSerializer. Как большинство новичков я сталкиваюсь с проблемой производительности о приложении, запускаются. Я прочитал много блогов, статей и наконец использую инструмент SGEN. Теперь производительность надеется быть в порядке, но немного вещей все еще не ясны для меня.
1) Если я использую синтаксис SGEN как это:
SGen.exe /assembly:MyAssembly /type:MyRootXmlType
или это достаточно только к (я в настоящее время использую этот синтаксис, у меня есть только один сериализуемый класс в моем блоке):
SGen.exe /assembly:MyAssembly
Когда параметр типа / может быть полезным на практике?
2) Я читал на MSDN (http://msdn.microsoft.com/en-us/library/ee704594.aspx)
Эта команда генерирует блок сериализатора MyAssembly.XmlSerializers.dll, который должен быть добавлен как ссылка на текущий проект или на GAC.
но на всех других блогах и статьях (например, на ТАК) я считал, что достаточно, чтобы просто поместить MyAssembly.XmlSerializers.dll в папку, где MyAssembly существует.
Таким образом, что является правильным?
3) Достаточно просто генерировать .XmlSerilizers.dll и развернуть его вместе с MyAssembly, или я должен добавить что-то к своему коду уже?
Я не думаю так, но я хотел бы быть уверенным, что я не должен буду изменять свой код, и "волшебство" происходит автоматически.
Если вы не используете аргумент / type для sgen.exe, он сгенерирует код де / сериализации для все общедоступные типы в сборке. Обратите внимание, что атрибут [Serializable] не используется в сериализации XML. Я сомневаюсь, что вам это нужно, используйте / type, чтобы сгенерированная сборка была небольшой.
Добавлять ссылку не обязательно, XML-сериализация всегда пытается использовать Assembly.Load () для сборки .XmlSerializers.dll. Кроме того, вы никогда не будете ссылаться на сгенерированные классы XmlSerializationWriterXxx и XmlSerializationReaderXxx непосредственно в своем коде. У него есть одно преимущество: система сборки автоматически копирует сборку, когда вы включаете проект в решение.
Об установке его в GAC стоит подумать только тогда, когда разные приложения сериализуют и десериализуют XML-файл. Вы можете предоставить другим приложениям сборку .XmlSerializers.dll, скопировав сборку вручную. Это немного подвержено ошибкам, используйте здесь свое собственное суждение. Посмотрите предыдущий абзац, чтобы узнать, как автоматизировать копирование.