c# - 在 C# MVC 中将 IDisposable 用于 Object 类但未将结果返回给 Ajax 成功

在过去几周的申请中,我们遇到了内存异常。

在我们使用 DataSet 和 DataTable 的地方,我们使用了最后黑色的 Using Statement 或 Dispose 方法。

对于我们的 Class 对象无法处理存储的 values。在我们的类对象中,我们存储来自数据库的大型 JSON 字符串。

对于这个问题,Microsoft 推荐了 IDisposable 概念。我们在类对象中实现了这个概念。

所以在类对象中添加了 IDisposable,我们试图在 finally 块中调用 Dispose 方法。这是在将 values 返回到 Jquery Ajax 成功方法之后。

但是在 Ajax 成功方法中,我们没有从控制器中获得实际的 values。它在发送到 Jquery Ajax 调用之前处理 values。

请在下面找到代码并提供您的输入。

ET_Reports dynamicGrid = new ET_Reports();
     try
        {       
            dynamicGrid = ReportAPI.GetDynamicReportGrid();
            var jsonResult = Json(dynamicGrid, JsonRequestBehavior.AllowGet);
             jsonResult.MaxJsonLength = int.MaxValue;
             return jsonResult;                   
            
        }
        catch (Exception ex)
        {
            string strDisplayMsg = Log_Exception(ex);
            return null;
        }
        finally
        {
            dynamicGrid.Dispose();
        }

回答1

我认为,您需要在 return 语句之前处理 dynamicGrid 或在 finally 语句之后替换 return 。在 return 之前您需要处理的任何方式。

相似文章

随机推荐

最新文章