Десериализация JSON создает циклическую ссылку ТОЛЬКО в live build
У меня странная проблема, которую я не могу обернуть. Я пытаюсь создать функцию «экспорт в csv» для моего приложения MVC4, где соответствующий JSON передается через вызов ajax в мой ActionResult. ActionResult десериализует stringify'd JSON (с JSON.Net), записывает его в файл в формате csv, а затем возвращает путь сервера к новому файлу. Мой успешный обратный вызов получает путь и вызывает URL для загрузки.
Это прекрасно работает локально, но на моем тестовом сервере я получаю следующее исключение:
A circular reference was detected while serializing an object of type 'System.Reflection.RuntimeModule'.
JSON (и впоследствии объекты, к которым они десериализованы) немного сложны. Они приходят из сгруппированного подмножества SlickGrid DataView. Я получал исключения из циклических ссылок, когда включал агрегированную информацию для итогов столбцов (это относится только к тем, которые разбираются в SlickGrid, я не считаю, что данные, передаваемые на сервер, являются проблемой), но я удалил их перед передачей JSON на сервер. Вот моя структура класса JSON to 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; }
}
Единственное, о чем я думаю, это то, что из-за того, как данные структурированы, список <> строк в корневом объекте может вызывать циклические ссылки во время десериализации, потому что группа не обязательно имеет уникальные ссылки на строки.
У меня вопрос, почему он работает нормально локально? Я понятия не имею, что мне не хватает.