首页新闻找找看学习计划

C#调用Java webservice实例化webservice代理类时报错

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-08-08 11:06

根据客户提供的wsdl文件,使用wsdl.exe生成代理类,在实例化时直接提示错误。异常信息如下:

捕捉到 System.InvalidOperationException

_HResult=-2146233079
_message=无法生成临时类(result=1)。
error CS0029: 无法将类型“DT_ERPDATA_QUERY_RESPResultsMainTableTableFields”隐式转换为“DT_ERPDATA_QUERY_RESPResultsMainTableTableFields[]”

HResult=-2146233079
IsTransient=false
Message=无法生成临时类(result=1)。
error CS0029: 无法将类型“DT_ERPDATA_QUERY_RESPResultsMainTableTableFields”隐式转换为“DT_ERPDATA_QUERY_RESPResultsMainTableTableFields[]”

Source=System.Xml
StackTrace:
在 System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
在 System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
在 System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
在 System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping[] mappings, Type type)
在 System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Type type)
在 System.Web.Services.Protocols.SoapClientType..ctor(Type type)
在 System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
在 SI_ERPDATA_QUERY_OUTService..ctor() 位置 f:\MyCodes\MyTest\MyTest\TestInterface.cs:行号 33
在 MyTest.TestInterface.Main(String[] args) 位置 f:\MyCodes\MyTest\MyTest\TestInterface.cs:行号 44
InnerException:

 

在网上查了下,没有得到满意的结果。

直接修改代理类,最后倒是可以不报错,也能请求到数据,但返回的结果跟直接通过http请求接口地址返回的不一样了

代理类中,将返回结果对象中的DT_ERPDATA_QUERY_RESPResultsMainTableTableFields[][]修改为了DT_ERPDATA_QUERY_RESPResultsMainTableTableFields[]

静看花开_的主页 静看花开_ | 初学一级 | 园豆:185
提问于:2016-08-04 14:56
< >
分享
所有回答(3)
0

这是?返回的数据格式是DataTable?

顾晓北 | 园豆:9530 (大侠五级) | 2016-08-04 15:00

这个是根据wsdl生成的代理类。还没到返回呢~

SI_ERPDATA_QUERY_OUTService testService = new SI_ERPDATA_QUERY_OUTService();

SI_ERPDATA_QUERY_OUTService 是生成的代理类

之前用这种方式做过其他接口没啥问题呢。

支持(0) 反对(0) 静看花开_ | 园豆:185 (初学一级) | 2016-08-04 17:59
0

DT_ERPDATA_QUERY_RESPResultsMainTableTableFields[]是一个对象数组,DT_ERPDATA_QUERY_RESPResultsMainTableTableFields,这个又是一个什么对象,实体类吗

king2003 | 园豆:161 (初学一级) | 2016-08-05 10:54

是的,根据wsdl自动生成出来的。

支持(0) 反对(0) 静看花开_ | 园豆:185 (初学一级) | 2016-08-05 12:14
0

修改代理类后解决。

静看花开_ | 园豆:185 (初学一级) | 2016-08-08 11:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册