1

我在基本类型 XSD 中有一个声明的元素“RecordRefSet”;它是“RecordRef”元素的容器元素。“RecordRefSet”元素在一组 WSDL 中的不同位置被引用。

当我的第一个项目从这些 WSDL 和 XSD 生成代码时,生成的代码包括一个名为“RecordRefSet”的类,它在各个地方都使用。

但是当我的第二个项目从这些 WSDL 和 XSD 的子集生成代码时,生成的代码不包含名为“RecordRefSet”的类,而是在第一个项目使用“RecordRefSet”实例的地方直接使用“RecordRef”数组班级。

我想知道什么决定了 SVCUTIL 何时决定生成“RecordRefSet”类以及何时决定直接使用“RecordRef”数组。

我已经检查过它在这两种情况下运行的是完全相同版本的 SVCUTIL,具有相同的命令行选项(生成服务合同、XMLSerializer)。唯一的区别是第一个项目包含我所有的 WSDL 和 XSD 文件,生成的代码总量更大,第二个项目使用 WSDL 和 XSD 文件的子集。

4

1 回答 1

0

我不知道 SvcUtil 的确切细节,但如果你将 [KnownType(typeof(YourType)] 属性添加到你的类中,这将告诉代理生成器服务使用什么类型,并据此生成 RecordRefSet 类你每次

于 2011-02-15T16:12:17.130 回答