5

我正在尝试在我的 .NET Web 应用程序中实例化 Web 服务。但是一旦它到达这条线:

registerService register = new registerService();

然后我收到以下错误:

无法生成临时类(结果=1)。错误 CS0030:无法将类型“Test.Website.ProxyTest.registerType[]”转换为“Test.Website.ProxyTest.registerType”

我没有编写网络服务。但这是否意味着 Web 服务在某处(在 XSD 或其他地方)有错误?

这是否意味着第 3 方开发人员需要修复此 Web 服务?

4

1 回答 1

9

这似乎是一个已知问题,详细信息可以在这里找到

原因:如果复杂类型的数组包含一个元素,该元素也是仅存在一个元素的复杂类型的数组,则 .NET Framework 中包含的 WSDL.EXE 的一个已知问题可能会导致错误生成代理类

.

目前没有可用的解决方案,但是有三种可用的解决方法:

使用 WSDL.EXE 手动生成代理类,然后修改数据类型被不当创建为二维数组(例如'CustomType[][]')的代理类,并将其更正为一维数组(例如'自定义类型 []')。修改所需 WSDL 中的数据类型,以便在定义中包含第二个可选元素。这可以通过添加诸如''之类的元素来完成。修改所需 WSDL 中的复杂类型,使边界属性成为复杂类型而不是元素的一部分(即将“minOccurs”和“maxOccurs”属性移动到复杂类型并从元素中删除它们)。

一个类似的stackoverflow问题

于 2013-03-21T06:25:26.653 回答