0

私は次のようなWebサービスを作成しました

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

ブラウザで呼び出すと (Give ME An Error ...)

System.InvalidOperationException: XML ドキュメントの生成中にエラーが発生しました。---> System.InvalidOperationException: タイプ TMR.AndroidMethods+NameAndvalue は予期されていませんでした。XmlInclude または SoapInclude 属性を使用して、静的に認識されていない型を指定します。System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive (文字列名、文字列 ns、オブジェクト o、ブール値 xsiType) で Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object (文字列 n、文字列 ns、オブジェクト o、ブール値 isNullable、ブール値の needType) ) Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write2_ArrayOfAnyType(Object o) で Microsoft.Xml.Serialization.GeneratedAssembly.ArrayListSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer) で System.Xml.

このエラーを知っていたlist(of string)ので、メソッドから返されたときにそれを見ました。そのため、メソッドからのリターンを変更しましたが、List(Of String)同じArrayList問題が発生しました。

何が問題ですか ??

4

1 に答える 1

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>
于 2012-11-27T18:58:06.567 に答える