Поделиться через


Инструмент создания сериализатора XML (Sgen.exe)

Генератор сериализатора XML создает сборку сериализации XML для типов в указанной сборке. Сборка сериализации повышает производительность запуска XmlSerializer когда она сериализует или десериализует объекты указанных типов.

Замечание

Это средство предназначено для сборок .NET Framework. Сведения о генераторе XML-сериализаторов для сборок .NET (Core) см. в статье Об использовании генератора сериализатора XML в .NET Core.

Синтаксис

Запустите средство из командной строки.

sgen [options]

Подсказка

Для корректной работы средств .NET Framework необходимо использовать командную строку разработчика Visual Studio или Visual Studio Developer PowerShell либо правильно задать переменные среды Path, Include и Lib. Чтобы задать эти переменные среды, запустите SDKVars.bat, расположенную в каталоге <SDK>\<version>\Bin .

Параметры

Вариант Описание
/a[ssembly]:filename Создает код сериализации для всех типов, содержащихся в сборке или исполняемом файле, заданном именем файла. Можно указать только одно имя файла. Если этот аргумент повторяется, используется последнее имя файла.
/c[ompiler]:options Задает параметры для передачи компилятору C#. Все параметры csc.exe поддерживаются, так как они передаются компилятору. Это можно использовать, чтобы указать, что сборка должна быть подписана, а также для указания файла ключа.
/d[ebug] Создает образ, который можно использовать с отладчиком.
/f[orce] Принудительно перезаписывает существующую сборку с тем же именем. Значение по умолчанию — false.
/help или /? Отображает синтаксис команд и параметров программы.
/k[eep] Подавляет удаление созданных исходных и других временных файлов после их компиляции в сборку сериализации. Это можно использовать для определения того, создает ли средство код сериализации для определенного типа.
/n[ologo] Подавляет отображение баннера запуска Майкрософт.
/o[ut]:path Указывает каталог, в котором будет сохранена созданная сборка. Заметка: Имя созданной сборки состоит из имени входной сборки плюс "xmlSerializers.dll".
/p[roxytypes] Создает код сериализации только для типов прокси веб-служб XML.
/r[eference]:assemblyfiles Указывает сборки, на которые ссылаются типы, требующие сериализации XML. Принимает несколько файлов сборок, разделенных запятыми.
/s[ilent] Запрещает отображение сообщений об успешно выполненных операциях.
/t[ype]:type Создает код сериализации только для указанного типа.
/v[erbose] Отображает подробные выходные данные для отладки. Перечисляет типы из целевой сборки, которые не могут быть сериализованы с помощью XmlSerializer.
/? Отображает синтаксис команд и параметров программы.

Замечания

Когда генератор сериализатора XML не используется, XmlSerializer генерирует код сериализации и сборку сериализации для каждого типа при каждом запуске приложения. Чтобы повысить производительность запуска сериализации XML, используйте средство Sgen.exe для создания этих сборок заранее. Затем эти сборки можно развернуть с помощью приложения.

Генератор сериализатора XML также может повысить производительность клиентов, использующих прокси-серверы веб-службы XML для взаимодействия с серверами, так как процесс сериализации не приведет к повышению производительности при первой загрузке типа.

Созданные сборки нельзя использовать на стороне сервера веб-службы. Это средство предназначено только для клиентов веб-служб и сценариев сериализации вручную.

Замечание

Средство sgen несовместимо с сеттерами только для инициализации. Инструмент завершится ошибкой, если целевая сборка содержит какие-либо общедоступные свойства, использующие эту функцию.

Именование

Если сборка, содержащая тип сериализации, называется MyType.dll, связанная сборка сериализации будет называться MyType.XmlSerializers.dll.

Примеры

Следующая команда создает сборку с именемData.XmlSerializers.dll для сериализации всех типов, содержащихся в сборке с именем Data.dll.

sgen Data.dll

На сборкуData.XmlSerializers.dll можно ссылаться из кода, который должен сериализовать и десериализировать типы в Data.dll.

См. также