Инструмент создания XML-сериализатора (Sgen.exe)
Инструмент создания XML-сериализатора создает сборку XML-сериализации для типов в указанной сборке. Сборка сериализации повышает производительность XmlSerializer при запуске, когда выполняется сериализация или десериализация объектов указанных типов.
Синтаксис
Запустите инструмент из командной строки.
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-веб-служб для связи с серверами, поскольку производительность процесса сериализации не снижается при первой загрузке типа.
Эти созданные сборки нельзя использовать на стороне сервера веб-службы. Этот инструмент предназначен только для клиентов веб-служб и сценариев ручной сериализации.
Если сборка, содержащая сериализуемый тип, называется "MyType.dll", связанная сборка сериализации будет называться "MyType.XmlSerializers.dll".
Примечание.
Средство sgen
несовместимо с средствами установки только для инициализации. Средство завершится ошибкой, если целевая сборка содержит все общедоступные свойства, использующие эту функцию.
Примеры
Следующая команда создает сборку с именем "Data.XmlSerializers.dll" для сериализации всех типов, содержащихся в сборке с именем "Data.dll".
sgen Data.dll
Код, для которого требуется сериализация и десериализация типов в Data.dll, может содержать ссылки на сборку Data.XmlSerializers.dll.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по