14 messaggi dal 23 aprile 2012
Salve ragazzi come da titolo ho un problema durante la conversione di un oggetto, gestito tramite Entity Framework, in una stringa JSON ricevo da visual studio il seguente messaggio: "Rilevato riferimento circolare durante la serializzazione di un oggetto di tipo 'MyProjectServer.Utenti'";

All'interno di un gestore chiamato "GestUtenti.ashx" ho il seguente codice:

Public Class GestUtenti
    Implements System.Web.IHttpHandler

    Private NomeMetodo As String = String.Empty
    Private MetodoCallBack As String = String.Empty
    Private Parametri As Object = String.Empty
    Private _db As ProjectEntities = New ProjectEntities ()

    Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        context.Response.ContentType = "application/x-javascript"
        NomeMetodo = context.Request.Params("method")
        Parametri = context.Request.Params("param")
        MetodoCallBack = context.Request.Params("callbackmethod")

        Select Case NomeMetodo.ToLower
            Case "getutenti"
                context.Response.Write(GetUtenti(context))
                Exit Select
        End Select

    End Sub

    Public Function GetUtenti(context As HttpContext) As String
        Dim _response As New JsonResponse()
        Dim jSearializer As New JavaScriptSerializer()

        Try
            _response.IsSucess = True
            _response.Message = String.Empty
            _response.CallBack = MetodoCallBack

            _response.ResponseData = _db.Utenti.ToList()
        Catch ex As Exception
            _response.Message = ex.Message
            _response.IsSucess = False
        End Try
        Return jSearializer.Serialize(_response)
    End Function

    ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

End Class



l'errore avviene nella serializzazione Return jSearializer.Serialize(_response)

Avete qualche suggerimento per ovviare al problema.

Grazie in anticipo
75 messaggi dal 24 agosto 2006
Ciao
Devi serializzare un oggetto anonimo (ma anche una tua classe costruita ad hoc va bene) così:

_response.ResponseData = (from r in _db.Utenti Select new with {.ID = r.ID, ..Cognome = r.Cognome, .Nome = r.Nome}).tolist()

Il problema è che il serializzer quando trova un campo foreignkey che correla un'altra tabella tenta di serializzare anche quella che a sua volta ha un campo che la correla con quella di partenza..

Buon lavoro
Pino Saffioti


"m1h4wk" <m1h4wk> ha scritto nel messaggio news:395133@...
Salve ragazzi come da titolo ho un problema durante la conversione di un oggetto, gestito tramite Entity Framework, in una stringa JSON ricevo da visual studio il seguente messaggio: "Rilevato riferimento circolare durante la serializzazione di un oggetto di tipo
'MyProjectServer.Utenti'";
All'interno di un gestore chiamato "GestUtenti.ashx" ho il seguente codice:
Public Class GestUtenti
Implements System.Web.IHttpHandler
Private NomeMetodo As String = String.Empty
Private MetodoCallBack As String = String.Empty
Private Parametri As Object = String.Empty
Private _db As ProjectEntities = New ProjectEntities ()
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
context.Response.ContentType = "application/x-javascript"
NomeMetodo = context.Request.Params("method")
Parametri = context.Request.Params("param")
MetodoCallBack = context.Request.Params("callbackmethod")
Select Case NomeMetodo.ToLower
Case "getutenti"
context.Response.Write(GetUtenti(context))
Exit Select
End Select
End Sub
Public Function GetUtenti(context As HttpContext) As String Dim _response As New JsonResponse()
Dim jSearializer As New JavaScriptSerializer()
Try
_response.IsSucess = True
_response.Message = String.Empty
_response.CallBack = MetodoCallBack
_response.ResponseData = _db.Utenti.ToList()
Catch ex As Exception
_response.Message = ex.Message
_response.IsSucess = False
End Try
Return jSearializer.Serialize(_response)
End Function
ReadOnly Property IsReusable() As Boolean Implements
IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
l'errore avviene nella serializzazione Return
jSearializer.Serialize(_response)
Avete qualche suggerimento per ovviare al problema.
Grazie in anticipo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.