【发布时间】:2016-10-03 12:06:12
【问题描述】:
我在 vb.net 中使用带有 Visual Studio 2015 社区的 soap 客户端时遇到问题。我想用soap客户端库,但是找不到。
所以,我在 Visual Studio 2015 社区中找到了wsdl.exe 命令。我试过wsdl.exe。它在以下链接中生成了代码:
C:\Program Files\Microsoft Visual Studio 14.0>wsdl /l:VB https://ss.yahooapis.jp/services/V6.0/LocationService?wsdl /out:C:\Users\user_name\Desktop\
我添加了项目并成功编译它。但是,实例化该行中的对象时会发生异常。
Dim LocationServiceWsdl As New LocationService()
以下是错误信息。
消息:LocationService.get 无法反映
InnnerException:反映 SoapHeader 时发生错误。
在:
System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo methodInfo, Boolean client, XmlReflectionImporter xmlImporter, SoapReflectionImporter soapImporter, String defaultNs)
System.Web.Services.Protocols.SoapClientType.GenerateXmlMappings(类型类型、ArrayList soapMethodList、String serviceNamespace、Boolean serviceDefaultIsEncoded、ArrayList 映射)
System.Web.Services.Protocols.SoapClientType..ctor(类型类型)
System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
LocationService.vb
<System.Web.Services.Protocols.SoapHeaderAttribute("RequestHeader"),
System.Web.Services.Protocols.SoapHeaderAttribute("ResponseHeader", Direction:=System.Web.Services.Protocols.SoapHeaderDirection.Out),
System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace:="http://ss.yahooapis.jp/V6", ResponseNamespace:="http://ss.yahooapis.jp/V6", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)>
Public Function [get](ByVal accountId As Long, <System.Xml.Serialization.XmlElementAttribute("error")> ByRef [error]() As [Error]) As <System.Xml.Serialization.XmlElementAttribute("rval")> LocationReturnValue
Dim results() As Object = Me.Invoke("get", New Object() {accountId}) ' <- maybe error occurs here.
[error] = CType(results(1), [Error]())
Return CType(results(0), LocationReturnValue)
End Function
我该如何解决这个错误?
【问题讨论】:
标签: vb.net visual-studio windows-7 .net-4.5