两种方案需要 XML 序列化:
从公共语言运行时 (CLR) 对象调用 Web 服务。
将用户定义的类型(UDT)转换为 XML。
通过调用 XmlSerializer 类执行 XML 序列化通常会生成一个附加的序列化程序集,该程序集使用源程序集重载到项目中。 但是,出于安全考虑,此重载在 CLR 中处于禁用状态。 因此,若要调用 Web 服务或执行从 UDT 到 SQL Server 中的 XML 的转换,必须使用随 .NET Framework 一起提供的生成必要序列化程序集 的工具 手动创建程序集Sgen.exe。 调用 XmlSerializer时,必须按照以下步骤手动创建序列化程序集:
运行随 .NET Framework SDK 一起提供的 Sgen.exe 工具,以创建包含源程序集的 XML 序列化程序的程序集。
使用
CREATE ASSEMBLY语句在 SQL Server 中注册生成的程序集。
有关执行 XML 序列化时可能收到的错误的信息,请参阅以下Microsoft支持文章:“无法加载动态生成的序列化程序集”。
有关 XMLSerializer 不支持的数据类型的信息,请参阅 .NET Framework 文档中 .NET Framework 中的 XML 架构绑定支持。