在Web服务中使用通用列表?

时间:2013-09-24 08:06:10

标签: .net visual-studio-2010 generics

我有一类属性,它们被用作Web服务的一部分。该类具有另一个类的列表作为其属性之一:

<Serializable()> _
Public Class LessonPlans
    Public Property Teacher As String
    Public Property RoomNumber As String
    Public Property Subject As String
    Public Property Students As List(Of Student)
End Class

<Serializable()> _
Public Class Student
    Public Property FirstName As String
    Public Property LastName As String
End Class

当我在本地应用程序上使用LessonPlans类时,执行以下操作时没有问题:

Dim _NewLesson As New LessonPlans
_NewLesson.RoomNumber = "5"
_NewLesson.Subject = "English"
_NewLesson.Teacher = "Mr Smith"

Dim _Students As New List(Of Student)

Dim _NewStudent As New Student
_NewStudent.FirstName = "James"
_NewStudent.LastName = "Jones"

_Students.Add(_NewStudent)

_NewLesson.Students = _Students

但是,当我尝试在使用Web服务的应用程序上添加以下行时:

_NewLesson.Students = _Students

我收到错误: 错误6 “System.Collections.Generic.List(Of WindowsApplication1.ws_lessons.Students)”类型的值无法转换为“WindowsApplication1.ws_lessons.Students的一维数组”。

2 个答案:

答案 0 :(得分:1)

转到对WS的引用属性,在“高级”设置下检查是否需要列表或数组

答案 1 :(得分:0)

经过一些研究后我发现虽然有一种相当复杂的方法可以实现我上面所需要的,但是通过Web服务将通用列表作为服务引用导入到项目中而不是像Web引用。较新版本的Visual Studio中的Web引用功能已过时,似乎已被服务引用取代。