Ila*_*sda 5 vb.net asp.net web-services .net-4.0 servicestack
当将类连接到JSON时,我对ServiceStack有一个非常奇怪的问题 - 对象是空的,但XML工作正常.
发现一些建议,JSON序列化程序仅在属性公开时起作用,但正如您在下面看到的,我的属性是公共的.
请参阅下面的代码和截图.任何建议都非常感谢.
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
默认情况下,ServiceStack只会序列化DTO中的公共属性,而不是公共字段.所以,你需要任何声明username,并fullname各自为property您的User类,或配置ServiceStack.Text序列化的字段(通过设置JsConfig.IncludePublicFields为True).
请注意,对于JSON序列化,使用ServiceStack.Text,而对于XML序列化,则使用BCL XML序列化程序.因此,XML与JSON序列化的配置和行为可以在ServiceStack的这些方式上有所不同.
| 归档时间: |
|
| 查看次数: |
834 次 |
| 最近记录: |