System.Runtime.Serialization.XsdDataContractExporter 类

本文提供了此 API 参考文档的补充说明。

在已创建的 Web 服务包含由公共语言运行库 (CLR) 类型表示的数据时,以及在需要为其他 Web 服务将使用的每个类型导出 XML 架构时,请使用 XsdDataContractExporter 类。 也就是说,XsdDataContractExporter 能够将一组 CLR 类型转换成 XML 架构。 (有关可以使用的类型的详细信息,请参阅 数据协定序列化程序支持的类型。然后,可以通过 Web 服务描述语言(WSDL)文档公开架构,供需要与服务互操作的其他人使用。

反之,如果您要创建的 Web 服务必须与现有 Web 服务交互操作,请使用 XsdDataContractImporter 转换 XML 架构,并且创建用所选编程语言表示数据的 CLR 类型。

XsdDataContractExporter 生成一个包含架构集合的 XmlSchemaSet 对象。 通过 Schemas() 属性访问架构集。

注意

若要快速生成其他 Web 服务可以使用的 XML 架构定义 (XSD) 文件,请使用 XsdDataContractExporter

将架构导出到 XmlSchemaSet

若要创建 XmlSchemaSet 类的包含 XML 架构文件的实例,应该注意以下问题。

您要导出的类型集将被记录为一组内部数据协定。 因此,可以多次调用 CanExport 方法向架构集中添加新类型,并且不会降低性能(这是因为仅将新类型添加到架构集中)。 在执行 Export 操作期间,会将现有架构与要添加的新架构进行比较。 如果有冲突,则会引发异常。 如果两种类型具有相同的数据协定名称,但具有不同的协定(不同的成员),那么当这两种类型由同一 XsdDataContractExporter 实例导出时,通常会检测到冲突。

使用导出程序

建议按以下方法使用此类:

  1. 使用 CanExport 重载之一来确定是否可以导出指定的类型和类型集。 请使用符合您要求的重载之一。

  2. 调用对应的 Export 方法。

  3. Schemas 属性检索架构。