2

我正在使用的 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>

但是使用MS 中的wsdl.exe(运行时版本:1.1.4322.573)会生成

    public class SomeClassType {

        /// 
        public string errorMessage;

        /// 
        public string[] values;

        /// 
        public bool isEmpty;

    }

我预计string[,] values不会string[] values

是否有解决此问题的方法或解决方法?(除了手动更改生成的代码)

4

3 回答 3

1

我必须设置type="tp:ArrayOfArrayOfString"totype="tp:ArrayOfString"和 themaxOccurs="unbounded"

于 2011-04-29T10:38:59.023 回答
0

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

于 2011-04-20T06:27:51.043 回答
0

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

于 2011-04-20T07:00:17.880 回答