65.9K
CodeProject 正在变化。 阅读更多。
Home

SharePoint Dispose Checker 工具

starIconstarIconstarIconstarIconstarIcon

5.00/5 (6投票s)

2012年7月26日

CPOL

3分钟阅读

viewsIcon

36233

downloadIcon

742

Dispose Checker 工具是一个在 SharePoint 项目中查找未释放对象的有用工具。

引言

在本文中,我们可以了解 Dispose Checker 工具,它是一个在 SharePoint 项目中查找未释放对象的有用工具。

什么是 Dispose Checker 工具?

Dispose Checker 工具检查您的项目是否存在未释放的 SharePoint 对象,并将其报告为错误。您可以将此工具与 Visual Studio 2010 集成,并且在构建事件时会自动报告错误。

以下是要检查是否已释放的对象

  • SPSite
  • SPWeb

为什么我们需要这个工具?

您可能在想,即使我们有 .Net 垃圾回收器,为什么还需要这个工具。 是的! 的确存在 .Net 自动垃圾回收。 但是,存在未释放对象占用过多内存的风险。 这可能导致应用程序池偶尔重新启动,从而导致响应延迟。

例如,以下代码会导致对象未释放

此外,托管服务器对象还会占用非托管内存,从而导致非常高的内存消耗。 为了节省内存,建议释放内存。

因此,使用 SharePoint 对象的最佳方法是在代码退出后释放对象。 推荐的解决方案是 using 语句。 另一个解决方案是手动调用 Dispose() 方法。

在哪里下载该工具?

您可以从 CodePlex 下载该工具,由于有很多版本,请选择适合您的 SharePoint 二进制文件的正确版本。

请注意,有时最新版本可能无法与您的二进制文件一起正常工作。 以下链接包含使用 SharePoint 2010 和 Visual Studio 2010 测试过的有效下载:http://archive.msdn.microsoft.com/SPDisposeCheck/

如何使用该工具?

从上面的链接下载并安装该安装程序,请记住检查以下选项

选择上述选项后,您将获得以下便利

  • 从“工具”菜单将其用作 Visual Studio 加载项
  • 在每次构建时自动执行该工具

测试工具

您可以创建一个新的 SharePoint 2010 控制台应用程序。 将以下代码添加到 main 方法中。

static void Main(string[] args)
{
    SPSite site = new SPSite("https://");
    SPWeb web = site.OpenWeb();
}

构建项目以继续。

访问工具

您可以从 Visual Studio 的“工具”菜单访问该工具。

访问该工具后,它将显示当前项目已启用 Dispose 检查。

单击“保存并分析”按钮开始分析您的项目。 您应该在“错误列表”中获得以下结果。

该错误表示需要释放对象,您可以看到有一个 MSDN 链接可以了解有关释放对象的更多信息。

解决错误

您可以使用每个对象的 Dispose 方法,或使用 using 语句来消除错误。

尝试构建项目,您应该会看到“错误列表”中的错误消失了。 (如果在安装时选择了自动释放检查。)

您可以通过打开现有项目并运行该工具来练习此操作。 如果存在释放检查错误,则应更正它们。

注意:使用此工具的全部目的是通过在作用域后释放不需要的对象来提高代码效率。 MSDN 上的示例包含 using 子句以支持释放模式。 您可以参考相关的 MSDN 链接以获取更多信息。

参考文献

摘要

在本文中,我们探讨了 SharePoint 2010 的 Dispose Checker 工具。 以下是关于 Dispose Checker 工具的要点总结。

  • 有助于查找未释放的对象
  • 与 Visual Studio 2010 集成良好
  • 该工具是免费的

附加的源代码包含有效和无效场景。 您可以在构建后运行 Dispose Checker 工具来检查错误。

© . All rights reserved.