Deserializacja JSON powoduje TYLKO odniesienie cykliczne w kompilacji na żywo
Mam dziwny problem, że nie mogę owinąć głowy. Próbuję utworzyć funkcję „eksport do csv” dla mojej aplikacji MVC4, w której odpowiedni JSON jest przekazywany przez wywołanie ajax do mojego ActionResult. ActionResult dokonuje deszyfracji JSON stringify'd (z JSON.Net), zapisuje go do pliku w formacie csv, a następnie zwraca ścieżkę serwera do nowego pliku. Odwołanie do mojego sukcesu odbiera ścieżkę i wywołuje adres URL do pobrania.
Działa to dobrze lokalnie, ale na moim serwerze testowym na żywo otrzymuję następujący wyjątek:
A circular reference was detected while serializing an object of type 'System.Reflection.RuntimeModule'.
JSON (a następnie obiekty, do których są deserializowane) są nieco skomplikowane. Pochodzą z pogrupowanego podzbioru SlickGrid DataView. Otrzymywałem wyjątki odwołań cyklicznych, gdy dołączałem informacje zbiorcze dla sum kolumn (dotyczy to tylko tych, które są zorientowane w SlickGrid, nie sądzę, aby dane przekazywane do serwera stanowiły problem), ale usunąłem je przed przekazaniem JSON na serwer. Oto moja struktura klasy JSON na C #:
[Serializable]
public class Row
{
public int id { get; set; }
public DateTime DateCreated { get; set; }
public int RefNo { get; set; }
public string ClientName { get; set; }
public string Plate { get; set; }
public string Address1 { get; set; }
public int? ProductID { get; set; }
public string Product { get; set; }
public string S1 { get; set; }
public string S2 { get; set; }
}
[Serializable]
public class RootReportObject
{
public bool __group { get; set; }
public int level { get; set; }
public int count { get; set; }
public string value { get; set; }
public string title { get; set; }
public int collapsed { get; set; }
public List<Row> rows { get; set; }
public object groups { get; set; }
public string groupingKey { get; set; }
}
Jedyne, co myślę, to to, że ze względu na strukturę danych, lista <> wierszy w obiekcie głównym może rzucać odwołania cykliczne podczas deserializtacji, ponieważ grupa niekoniecznie ma unikalne odwołania do wierszy.
Moje pytanie brzmi: dlaczego działa dobrze lokalnie? Nie mam pojęcia, czego mi brakuje.