WCF VB序列化两次

时间:2015-12-01 19:36:23

标签: json vb.net wcf serialization json.net

我有一个带有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

希望你们对我有所了解,并为那些草率的英语感到抱歉。

1 个答案:

答案 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对象。

如果您可以提供有关数据的更多详细信息,那么我可以为您提供准确的代码。