Ho un problema molto strano con ServiceStack quando serializzo una classe in JSON - gli oggetti sono vuoti, tuttavia XML funziona correttamente.ServiceStack - json vuoto quando si restituisce la classe
Trovato qualche suggerimento che, serializzatore JSON funziona solo quando le proprietà sono pubbliche, ma come potete vedere qui sotto le mie proprietà sono pubbliche.
Vedere sotto il codice e gli screenshot. Ogni suggerimento è molto apprezzato.
XML

JSON

GetUsers.aspx.vb
Public Class GetUsersAD
Public Property username As String
Public Property fullname As String
Public Function HandleRequest()
Dim _users As New List (Of User)
_users = GetUsersTest(_users)
Return _users
End Function
Public Function GetUsersTest(_users As List (Of User)) As List (Of User)
Dim dt As New DataTable
dt.Columns.Add("username")
dt.Columns.Add("fullname")
For x As Integer = 0 To 5
Dim newUserRow As DataRow = dt.NewRow()
newUserRow("username") = "username-" & x & ""
newUserRow("fullname") = "fullname-" & x & ""
dt.Rows.Add(newUserRow)
Next
For Each row As DataRow In dt.Rows
Dim _user As New User
_user.username = row("username")
_user.fullname = row("fullname")
_users.Add(_user)
Next
Return _users
End Function
End Class
Public Class User
Public username As String = ""
Public fullname As String = ""
End Class
Public Class Users
Public username As String = ""
Public fullname As String = ""
End Class
WS.vb
Public Class WrapperGetUsers
Implements IService(Of GetUsersAD)
Public Property username As String
Public Property fullname As String
Public Function Execute(ByVal request As GetUsersAD) As Object Implements ServiceStack.ServiceHost.IService(Of GetUsersAD).Execute
Return request.HandleRequest()
End Function
End Class
Una volta aggiunte proprietà pubbliche alla classe Utente, tutto funziona correttamente. Grazie per il consiglio. – Iladarsda
Inoltre, sembra che sia possibile rimuovere tali proprietà dalle classi 'GetUsersAD' e' WrapperGetUsers', a meno che non le si utilizzi per altri scopi. Fondamentalmente, non inserire le proprietà che si desidera avere nella richiesta/risposta nelle classi di servizio, inserirle in una classe DTO separata (come la classe 'User'). –
Non ero sicuro di dove dovrei mettere le proprietà così le ho usate ovunque. Grazie per il consiglio. – Iladarsda