从类导出架构

若要从数据协定模型中使用的类生成 XML 架构定义语言(XSD)架构,请使用该 XsdDataContractExporter 类。 本主题介绍创建架构的过程。

导出过程

架构导出过程以一个或多个类型开始,并生成一个描述这些类型的 XML 投影的 XmlSchemaSet

XmlSchemaSet它是表示一组 XSD 架构文档的 .NET Framework 架构对象模型(SOM)的一部分。 若要从XmlSchemaSet创建 XSD 文档,请使用Schemas类的XmlSchemaSet属性中的架构集合。 然后使用XmlSchema 序列化每个XmlSerializer 对象。

导出架构

  1. 创建XsdDataContractExporter的实例。

  2. 可选。 在构造函数中传递XmlSchemaSet。 在这种情况下,架构导出期间生成的架构将添加到此 XmlSchemaSet 实例,而不是从空白 XmlSchemaSet开始。

  3. 可选。 调用 CanExport 方法之一。 该方法确定是否可以导出指定的类型。 该方法与下一步中的Export方法具有相同的重载。

  4. 调用 Export 方法之一。 有三个重载采用了 TypeList<T> 对象的 Type ,或 List<T> 对象的 Assembly 。 在最后一种情况中,将导出所有给定程序集中的所有类型。

    多次调用Export方法会导致将多个项添加到同一个XmlSchemaSet。 如果某个类型已经存在于 XmlSchemaSet 中,则不会再在其中生成该类型。 因此,在同一个Export上多次调用XsdDataContractExporter比创建XsdDataContractExporter类的多个实例更好。 这可避免生成重复的架构类型。

    注释

    如果在导出期间出现故障,则 XmlSchemaSet 状态将不可预知。

  5. 通过 XmlSchemaSet 属性访问 Schemas

导出选项

可以通过将Options属性设置为XsdDataContractExporter类的一个实例以控制ExportOptions的导出过程的各个方面。 具体而言,可以设置以下选项:

辅助方法

除了导出架构的主要角色外,XsdDataContractExporter 还提供了几个有用的帮助函数,这些函数提供有关类型的信息。 这些包括:

导出选项会影响所有这些方法。

另请参阅