【发布时间】:2011-04-20 06:23:03
【问题描述】:
我正在使用的 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(运行时版本:1.1.4322.573)的 wsdl.exe 会生成
public class SomeClassType {
///
public string errorMessage;
///
public string[] values;
///
public bool isEmpty;
}
我希望string[,] values 不是string[] values
是否有解决此问题的方法或解决方法? (除了手动更改生成的代码)
【问题讨论】:
-
第一步:也许您不应该使用过时的 .NET 版本?第二步:也许您应该改用 WCF?至少尝试一下,看看 svcutil.exe 是否可以处理 WSDL 并生成合理的代码。第三步:您是否至少在运行 .NET 1.1 的最新服务包?第四步:尝试 .NET 2.0,它主要是对 .NET 1.1 的修复。
-
@John:不是我的要求。停留在过去。 .NET1.1 或失败。
-
@John:我已经用 Visual Studio Express 2010(框架 4 对吗?)进行了尝试,但它也失败了。所以看起来这不是框架问题......
-
@Asher:很遗憾听到这个消息。 RPC/Encoded 服务很难使用,如果不是不可能的话。它们不符合 WS-I BP 1.1。
-
@John:你知道如何在 WSDL 中指定多维数组类型以便 .NET 工具正确使用它吗?
标签: c# web-services wsdl.exe