从 CLR 数据库对象进行 XML 序列化

XML 序列化是以下两种情况所必需的:

  • 从公共语言运行时 (CLR) 对象调用 Web 服务。

  • 将用户定义类型 (UDT) 转换为 XML。

通过调用 XmlSerializer 类执行 XML 序列化通常将生成一个附加的序列化程序集,该程序集将重载到具有源程序集的项目中。 但出于安全原因,此重载在 CLR 中被禁用。 因此,若要调用 Web 服务或在 SQL Server 中执行从 UDT 到 XML 的转换,必须使用名为 Sgen.exe 的工具手动创建程序集,该工具随生成必要序列化程序集的 .NET Framework一起提供。 在调用 XmlSerializer 时,必须通过以下步骤手动创建序列化程序集:

  1. 运行 .NET Framework SDK 随附的Sgen.exe工具,以创建包含源程序集的 XML 序列化程序的程序集。

  2. 使用 CREATE ASSEMBLY 语句在 SQL Server 中注册生成的程序集。

有关执行 XML 序列化时可能收到的错误的信息,请参阅以下Microsoft 支持部门文章:“无法加载动态生成的序列化程序集”。

有关 XML 序列化程序不支持的数据类型的信息,请参阅 .NET Framework 文档中的“.NET Framework 中 XML 架构的绑定支持”。

另请参阅

从 CLR 数据库对象进行数据访问
CREATE ASSEMBLY (Transact-SQL)