Инструмент создания сериализатора 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]:параметры | Задает параметры, которые следует передать компилятору 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.