XML 序列化程序生成器工具 (Sgen.exe)

XML 序列化程序生成器为指定程序集中的类型创建 XML 序列化程序集。 序列化程序集在序列化或反序列化指定类型的对象时,提高了XmlSerializer的启动性能。

注释

此工具特定于 .NET Framework 程序集。 若要为 .NET (Core) 程序集生成 XML 序列化程序,请参阅 在 .NET Core 上使用Microsoft XML 序列化程序生成器

语法

从命令行运行该工具。

sgen [options]

小窍门

若要使 .NET Framework 工具正常运行,必须使用 Visual Studio 开发人员命令提示符或 Visual Studio 开发人员 PowerShell 或正确设置PathIncludeLib环境变量。 要设置这些环境变量,请运行SDKVars.bat,位于 SDK>\version>\<Bin 目录中<

参数

选项 DESCRIPTION
/a[ssembly]:filename 文件名指定的程序集或可执行文件中包含的所有类型生成序列化代码。 只能提供一个文件名。 如果重复此参数,则使用最后一个文件名。
/c[ompiler]:options 指定要传递给 C# 编译器的选项。 所有 csc.exe 选项都受支持,因为它们将传递给编译器。 这可用于指定程序集应进行签名并指定密钥文件。
/d[ebug] 生成可与调试器一起使用的映像。
/f[orce] 强制覆盖同名的现有程序集。 默认值为 false
/help/? 显示该工具的命令语法和选项。
/k[eep] 禁止在将生成的源文件和其他临时文件编译到序列化程序集后删除它们。 这可用于确定该工具是否为特定类型生成序列化代码。
/n[ologo] 禁止显示Microsoft启动横幅。
/o[ut]:path 指定要在其中保存生成的程序集的目录。 注意: 生成的程序集的名称由输入程序集的名称加上“xmlSerializers.dll”组成。
/p[roxytypes] 仅为 XML Web 服务代理类型生成序列化代码。
/r[eference]:assemblyfiles 指定由需要 XML 序列化的类型引用的程序集。 接受用逗号分隔的多个程序集文件。
/s[ilent] 取消显示成功消息。
/t[ype]:type 仅为指定类型生成序列化代码。
/v[erbose] 显示详细输出,以进行调试。 列出目标程序集中无法使用 XmlSerializer 进行序列化的类型。
/? 显示该工具的命令语法和选项。

注解

如果未使用 XML 序列化程序生成器,则每次运行应用程序时, XmlSerializer 都会为每个类型生成序列化代码和序列化程序集。 若要提高 XML 序列化启动的性能,请使用 Sgen.exe 工具提前生成这些程序集。 然后,可以使用应用程序部署这些程序集。

XML 序列化程序生成器还可以提高使用 XML Web 服务代理与服务器通信的客户端的性能,因为首次加载类型时,序列化过程不会产生性能命中。

生成的程序集不能在 Web 服务的服务器端使用。 此工具仅适用于 Web 服务客户端和手动序列化方案。

注释

sgen 工具与仅限 init 的资源库不兼容。 如果目标程序集包含使用此功能的任何公共属性,该工具将失败。

命名

如果包含要序列化的类型的程序集 MyType.dll命名,则关联的序列化程序集将 命名为MyType.XmlSerializers.dll

例子

以下命令创建一个名为 Data.XmlSerializers.dll 的程序集,用于序列化名为 Data.dll的程序集中包含的所有类型。

sgen Data.dll

可以从代码中引用需要序列化和反序列化 Data.dll 中的类型的 Data.XmlSerializers.dll 程序集

另请参阅