使用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

是否有一个修复或工作围绕这个问题?(除了手动更改生成的代码)

使用WSDL.exe使用多维数组的WSDL失败

我必须设置type="tp:ArrayOfArrayOfString"type="tp:ArrayOfString"maxOccurs="unbounded"

我相信您可以尝试WCF代理生成器(我相信WCF使用其他util,而不是wsdl.exe) -也许这将是有用的,但如果失败-我认为手动编辑生成的代码是您唯一的选择。

试试svcutil.exe。建议您尝试新版本的。net。