Веб-сервисы, выдающие ошибки при доступе прямо из браузера - PullRequest
0 голосов
/ 15 июля 2011

У меня есть следующий веб-сервис, который прекрасно работает, если к нему обращаются из клиентского скрипта (javascript, jquery)

<%@ WebService Language="VB" Class="WebService" %>

Imports System.Web.Script.Services
Imports System.Web.Services

<ScriptService()> _
Public Class WebService
    Inherits System.Web.Services.WebService

    Public Class Person
        Public FirstName As String
        Public LastName As String

        Public Sub New(ByVal m_FirstName As String, ByVal m_LastName As String)
            FirstName = m_FirstName
            LastName = m_LastName
        End Sub
    End Class

    <WebMethod()> _
    Public Function GetPersons() As List(Of Person)
        Dim People As List(Of Person) = New List(Of Person)

        People.Add(New Person("firstname_1", "surname_1"))
        People.Add(New Person("firstname_2", "surname_2"))

        Return People
    End Function
End Class

Но почему-то выдает ошибки, если я пытаюсь получить к нему доступ прямо в браузере

http://localhost/webservices/WebService.asmx
http://localhost/webservices/WebService.asmx/GetPersons

для просмотра описания стандартного сервиса веб-сервиса, показывающего все поддерживаемые операции

Я получаю ошибку:

WebService.Person cannot be serialized because it does not have a parameterless constructor.

1 Ответ

1 голос
/ 15 июля 2011

Добавить конструктор без параметров для вашей персоны

  Public Class Person
        Public FirstName As String
        Public LastName As String

        Public Sub New()
          'just add this constructor  
        End Sub
    End Class
...