Loai
Loai

Reputation: 732

Error While Creating A Web-Service That Contains A Method Return An ArrayList Type

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

Answers (1)

Garett
Garett

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

Related Questions