使用WSDL.exe使用多维数组的WSDL失败
本文关键字:WSDL 数组 失败 exe 使用 | 更新日期: 2023-09-27 17:50:43
我正在使用的WSDL中有以下内容;
<xsd:complexType name="SomeClassType">
<xsd:sequence>
<xsd:element type="xsd:string" name="errorMessage" minOccurs="1" nillable="true" maxOccurs="1"> </xsd:element>
<xsd:element type="tp:ArrayOfArrayOfString" name="values" minOccurs="1" nillable="true" maxOccurs="1"> </xsd:element>
<xsd:element type="xsd:boolean" name="isEmpty" minOccurs="1" maxOccurs="1"> </xsd:element>
</xsd:sequence>
</xsd:complexType>
,
<xsd:complexType name="ArrayOfArrayOfString">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[,]"></xsd:attribute>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
但是使用wsdl.exe from MS (Runtime Version: 1.1.4322.573)生成
public class SomeClassType {
///
public string errorMessage;
///
public string[] values;
///
public bool isEmpty;
}
我期望string[,] values
而不是string[] values
是否有一个修复或工作围绕这个问题?(除了手动更改生成的代码)
我必须设置type="tp:ArrayOfArrayOfString"
为type="tp:ArrayOfString"
和maxOccurs="unbounded"
我相信您可以尝试WCF代理生成器(我相信WCF使用其他util,而不是wsdl.exe) -也许这将是有用的,但如果失败-我认为手动编辑生成的代码是您唯一的选择。
试试svcutil.exe。建议您尝试新版本的。net。