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

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

Замечание

Это средство предназначено для сборок .NET Framework. Чтобы создать сериализаторы XML для сборок .NET Core, обратитесь к статье Использование генератора Microsoft XML Serializer на .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.

См. также