Reputation: 732
I've Create A Web-Service Seems Like
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
When I Invoke In The Browser (Give ME An Error ... )
System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type TMR.AndroidMethods+NameAndvalue was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically. at System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(String name, String ns, Object o, Boolean xsiType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object(String n, String ns, Object o, Boolean isNullable, Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write2_ArrayOfAnyType(Object o) at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayListSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer) at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) --- End of inner exception stack trace --- at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) at System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o, XmlSerializerNamespaces namespaces) at System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse response, Stream outputStream, Object returnValue) at System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream) at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues) at System.Web.Services.Protocols.WebServiceHandler.Invoke()
With Knowledge That This Error I Saw it When I was return an list(of string)
from Method
because of that i change the return from the List(Of String)
To ArrayList
But The Same Problem occurred.
What Is The Problem ??
Upvotes: 0
Views: 225
Reputation: 16828
Try using List(Of NameAndvalue)
instead. The following example
<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
returns
<?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>
Upvotes: 1