所有,Newtonsoft JSON - OutOfMemoryException異常
環境: ASP.net 2.0,NHibernate的3.3,Json.net(最新,6.x中)
我使用Newtonsoft.Json庫的最新版本。當我使用nhibernate加載一個實體時(我的實體引用了其他實體並且被懶惰地加載),我收到了內存不足異常或堆棧溢出異常。
代碼OutOfMemory例外:
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
settings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
string json = JsonConvert.SerializeObject(container.DataItem, settings);
代碼計算器例外:
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
settings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
string json = JsonConvert.SerializeObject(container.DataItem, settings);
人有這些問題,但似乎無解。我看到你的圖形太大或太深,但我的對象圖很小 - 我只是把代碼調用了很多次(每個對象一次)。我需要解決這個問題。
你確定你的對象圖表很小?你確定它不會不斷地從一個延遲加載的集合遍歷到另一個,逐漸加載整個數據庫? – 2014-09-19 10:38:41
我將在下週確認這一點,但簡單地看看它,我沒有看到任何問題。 – ActiveX 2014-09-19 16:26:36
我剛剛驗證了我的對象圖,它不是對象本身,而是返回的代理是原因(請參閱下面的答案)。 – ActiveX 2014-09-24 16:09:33