所有,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