powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / JSON WCF сервис не сериализует выборку
4 сообщений из 4, страница 1 из 1
JSON WCF сервис не сериализует выборку
    #38114438
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виновник торжества:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
    <OperationContract>
    <WebGet(UriTemplate:="/GetList?Page={Page}&Records={Records}&ID={ID}", RequestFormat:=WebMessageFormat.Json, _
        ResponseFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Bare)>
    Public Function GetList(Page As Integer, Records As Integer, Optional ID As Integer = 0) _
        As Response Implements IDataManipulation.GetList

        Dim cid As Integer = _State.PropertyValue("ClassificatorID")
        Dim x As Integer = db.mtskCatalogueInClassificator.Count(Function(p) p.CatalogueID = ID And p.ClassificatorID = cid)
        Dim sFilter As String = IIf(x > 0, "Filter=ClassificatorID=" & cid, "")

        Dim oCat As tblCatalogue = (From v In db.tblCatalogue Where v.CatalogueID = ID).Single

        Dim mRes As New Response("CATALOGUE")
        If oCat.Level = 2 Then
            mRes.Rowset.rows = db.tblCatalogue.SqlQuery("mp_TreeGet 'CATALOGUE'," & oCat.CatalogueID & _
                ",2,-1,-1,3,'" & sFilter & "','LeftKey'").ToList
        Else
            mRes.Rowset.rows = db.tblCatalogue.SqlQuery("mp_TreeGet 'CATALOGUE'," & oCat.CatalogueID & _
                "," & oCat.Level & ",-1,1,3,'" & sFilter & "','LeftKey'").ToList
        End If
        Dim jss As New JavaScriptSerializer
        Debug.Print(jss.Serialize(mRes))
        Return mRes
    End Function

<DataContract>
Public Class Response
    <DataMember>
    Public SvcItem As String
    <DataMember>
    Public [Rowset] As Rowset

    Public Sub New(ByVal sObjNAme As String)
        Rowset = New Rowset
        SvcItem = sObjNAme
    End Sub
End Class

<DataContract>
Public Class Rowset
    <DataMember>
    Public localRowset As Boolean
    <DataMember>
    Public entire As Integer
    <DataMember>
    Public total As Integer
    <DataMember>
    Public rows As IEnumerable(Of Object)
End Class


Вызываю его из html-страницы:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$.ajax({
    type: 'GET',
    url: "http://localhost:38377/Catalogue.svc/GetList?Page=1&Records=1&ID=8",
    contentType: 'application/json; charset=utf-8',
    success: function (response, status, xhr) { alert('success: ' + xhr.responseText); },
    error: function (xhr, status, error) { 
        if(!xhr.responseText.length)alert("Error\n-----\n" + xhr.status);
        if(xhr.responseText.length)document.write(xhr.responseText); 
    }
});


Если закомментировать выделенные строки, то на клиенте полный success, а если раскомментировать, то error 0 и пустой responseText, но JavaScriptSerializer отрабатывает на ура. Если заменить IEnumerable(Of Object) на List(Of tblCatalogue), результат аналогичный. Если раскомментировать и убрать <DataMember> у rows, то будет success, но соответственно без rows.

Как можно подружить сервис с SqlQuery без jss?
...
Рейтинг: 0 / 0
JSON WCF сервис не сериализует выборку
    #38115101
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и фиг с ним. Сделаю ashx + jss, wsdl все равно не нужно. Писанины даже меньше.
...
Рейтинг: 0 / 0
JSON WCF сервис не сериализует выборку
    #38152602
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

так, где конфиг wcf службы?
там от него зависит многое для того, чтобы wcf выплюнул json из метода.
вообще тут есть тема, как это настроить. я там и описывал все ньансы.
поищи пожалуйста.
...
Рейтинг: 0 / 0
JSON WCF сервис не сериализует выборку
    #38152611
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / JSON WCF сервис не сериализует выборку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]