我有一个带有Visual Basic代码的WCF服务(下面),我需要getAdministrationData()返回的表,而Newtonsoft序列化器提供了我需要的东西,所以我只是不知道如何使服务返回我,而不是一个序列化两次的对象。
<OperationContract()> _
<WebInvoke(Method:="POST", _
RequestFormat:=WebMessageFormat.Json, _
BodyStyle:=WebMessageBodyStyle.Wrapped, _
UriTemplate:="getAdministrationDataTree")> _
Public Function getAdministrationDataTree() As String
Dim myAdmManager As New AdministrationManager()
Dim model As DataSet = myAdmManager.getAdministrationData()
Dim json As String = JsonConvert.SerializeObject(model)
Return json
End Function
希望你们对我有所了解,并为那些草率的英语感到抱歉。
答案 0 :(得分:0)
在您的接口类中,您应该声明如下定义: -
<OperationContract()>
<WebGet(ResponseFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Wrapped, UriTemplate:="getAdministrationDataTree")>
Public Function getAdministrationDataTree() As AdminData
您还需要定义如下的数据合同: -
Class AdminData
<DataMember()>
Public Property AdminDataField1 as String
'Define any properties you need
End Class
然后在定义类中实现您的方法如下: -
Public Function getAdministrationDataTree() As AdminData
Dim myAdmManager As New AdministrationManager()
Dim model As DataSet = myAdmManager.getAdministrationData()
'Create an AdminData object and fill it with values you want to return
return AdminData
End Function
您将收到一个JSON对象。
如果您可以提供有关数据的更多详细信息,那么我可以为您提供准确的代码。