我创建网络服务似乎
Public Class NameAndvalue
Public name As String
Public value As String
End Class
<WebMethod()> _
Public Function ReturnNames_1() As ArrayList
Dim names As New List(Of NameAndvalue)
Dim nv As NameAndvalue
nv = New NameAndvalue With {.name = "AAA", .value = "1"} : names.Add(nv)
nv = New NameAndvalue With {.name = "BBB", .value = "2"} : names.Add(nv)
nv = New NameAndvalue With {.name = "CCC", .value = "3"} : names.Add(nv)
Dim Arr As ArrayList = New ArrayList(names)
Return Arr
End Function
当我在浏览器中调用时(给我一个错误......)
System.InvalidOperationException:生成错误时出错 XML文档。 ---&GT; System.InvalidOperationException:类型 不期望TMR.AndroidMethods + NameAndvalue。使用XmlInclude 或SoapInclude属性指定未知的类型 静态。在 System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(字符串 name,String ns,Object o,Boolean xsiType)at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object(字符串 n,String ns,Object o,Boolean isNullable,Boolean needType)at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write2_ArrayOfAnyType(对象 o)at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayListSerializer.Serialize(对象 objectToSerialize,XmlSerializationWriter writer)at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o,XmlSerializerNamespaces名称空间,String encodingStyle, String id)---内部异常堆栈跟踪结束--- at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o,XmlSerializerNamespaces名称空间,String encodingStyle, 字符串id)at System.Xml.Serialization.XmlSerializer.Serialize(的TextWriter textWriter,Object o,XmlSerializerNamespaces namespaces)at System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse对象 响应,Stream outputStream,Object returnValue)at System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(对象[] returnValues,Stream outputStream)at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(对象[] returnValues)at System.Web.Services.Protocols.WebServiceHandler.Invoke()
知道这个错误我看到它当我从Method返回list(of string)
时
因为我将List(Of String)
的回报更改为ArrayList
但发生了同样的问题。
问题是什么?
答案 0 :(得分:1)
请尝试使用List(Of NameAndvalue)
。以下示例
<WebMethod()> _
Public Function HelloWorld() As List(Of NameAndvalue)
Dim names As New List(Of NameAndvalue)
Dim nv As NameAndvalue
nv = New NameAndvalue With {.name = "AAA", .value = "1"} : names.Add(nv)
nv = New NameAndvalue With {.name = "BBB", .value = "2"} : names.Add(nv)
nv = New NameAndvalue With {.name = "CCC", .value = "3"} : names.Add(nv)
Return names
End Function
返回
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfNameAndvalue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<NameAndvalue>
<name>AAA</name>
<value>1</value>
</NameAndvalue>
<NameAndvalue>
<name>BBB</name>
<value>2</value>
</NameAndvalue>
<NameAndvalue>
<name>CCC</name>
<value>3</value>
</NameAndvalue>
</ArrayOfNameAndvalue>