通过


SchemaImporterExtension 类

定义

允许在使用自动化查询工具时自定义从 Web 服务描述语言(WSDL)文档生成的代码。

public ref class SchemaImporterExtension abstract
public abstract class SchemaImporterExtension
type SchemaImporterExtension = class
Public MustInherit Class SchemaImporterExtension
继承
SchemaImporterExtension
派生

示例

请参阅 SchemaImporterExtension 技术示例。 请注意,此示例不包括已签名的程序集。 而是演示如何将 SchemaImporterExtension 命令窗口与命令窗口一起使用。

注解

每当 Web 服务代理通过 Visual Studio 中找到的工具(或使用 Web 服务描述语言工具(Wsdl.exe)生成 Web 服务代理时,都会出现架构导入。 使用 XML 架构定义工具(Xsd.exe)从特定 XSD 文档生成代码时,也会发生架构导入。

SchemaImporterExtension 允许修改使用这些工具时生成的代码。 例如,你可能有一个现有类来处理系统上的预订订单,并且你有一个提供订单的现有 XSD 文档。 SchemaImporterExtension使用类,可以启用其中一个工具来生成使用类的代码。

若要控制代码的生成,必须使用命名空间中找到的 System.CodeDom 类。 有关详细信息,请参阅 使用 CodeDOMCodeDOM 快速参考.aspx)。

启用 WSDL.exe 工具(反过来,其他工具(如“添加 Web 引用”对话框)以使用扩展的步骤如下:

  1. 创建类的 SchemaImporterExtension 实现。
  2. ImportSchemaType使用该方法为代码生成器编写代码。 该方法包含参数,可用于检查截获的 XSD 类型并创建用于生成新 CLR 代码的 CodeDOM 对象。
  3. 如果需要,请使用 ImportAnyElement 该方法处理 <XSD 文档中找到的 xsd:any> 元素。
  4. 如果需要,请使用 ImportDefaultValue 该方法检查 XSD 文档中找到的默认值,并返回其他默认值。
  5. 将扩展编译到库中。
  6. 对程序集进行签名。
  7. 在全局程序集缓存(GAC)中安装程序集。
  8. 修改 machine.config 文件以包含扩展名。

构造函数

名称 说明
SchemaImporterExtension()

初始化 SchemaImporterExtension 类的新实例。

方法

名称 说明
Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
ImportAnyElement(XmlSchemaAny, Boolean, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider)

处理架构中 xsd:any< 元素的>导入。

ImportDefaultValue(String, String)

允许为要导入的 XSD 类型指定默认值。

ImportSchemaType(String, String, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider)

允许你通过检查导入的架构并指定它映射到的 CLR 类型来操作生成的代码。

ImportSchemaType(XmlSchemaType, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider)

允许你通过检查导入的架构并指定它映射到的 CLR 类型来操作生成的代码。

MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
ToString()

返回一个表示当前对象的字符串。

(继承自 Object)

适用于