如何在Visual Studio IDE中使所有IDisposable类的颜色不同?

时间:2009-07-27 16:02:11

标签: c# visual-studio ide

标题涵盖了所有内容。我希望实现IDisposable的类以特定颜色显示,这样我就可以知道是否应该将它们包装在using块中。是否有可以扩展IDE的设置或过程?

7 个答案:

答案 0 :(得分:12)

我认为一旦Roslyn问世,这将变得更容易/无扩展,但目前这并不容易,因为您无法轻松地从扩展程序以C#方式访问代码。

在Resharper ,它很容易!我的例子在ReSharper 9.0中测试过。可悲的是,没有简单的方法可以告诉你。

  • Resharper - >选项 - >代码检查 - >自定义模式 - >添加,对话框弹出
  • 选择C#(左上角)
  • 选择"查找" (右上)
  • 添加new $disp$($args$)
  • 的模式
  • 模式严重性:显示为建议
  • 描述:一次性施工
  • "添加占位符"类型:类型,名称:disp,类型:System.IDisposable
  • "添加占位符"类型:参数,名称:args

保存,您现在可以得到一个"建议"每当新的一次性用品被建造时。

添加模式$disp$ $var$ = $exp$;也可能有所帮助。所有与exp相等的东西都被定义为表达式。

enter image description here

答案 1 :(得分:3)

虽然它不像更改设置那么简单,但肯定可以这样做。您需要编写Visual Studio插件才能完成此任务。

访问http://msdn.microsoft.com/en-us/vsx/bb980955.aspx开始使用。正如其他人会指出的那样。这不适合胆小的人。

以下链接可指向您所寻找的内容:http://msdn.microsoft.com/en-us/library/bb166778.aspx

答案 2 :(得分:1)

你做不到。这需要语言服务支持,C#或VB.Net都不提供此功能。

不可能是一句话太强大了。使用加载项可以做到这一点,加载项可以深入检查代码并找出层次结构。然而,这是一项非常重要的任务。

答案 3 :(得分:0)

当然,有很多工具可以构建VS扩展,see Visual Studio 2008 SDK 1.1 但是,构建这样的加载项所需的时间将需要更多的时间来浏览组件并确定它们是否为Disposable

答案 4 :(得分:0)

我不确定,如果FXCop或StyleCop已经可以做到这一点。但是,这将是一个编译后的建议/警告。

Resharper建议这样做,我想。

答案 5 :(得分:0)

街上的一句话就是be much easier in VS.NET 2010。编辑器正在WPF中重写。

答案 6 :(得分:0)

也许我这样做是个坏人,但我最近一直在使用这段代码:

public static void BulkDispose(object[] objects)
{
  foreach (object o in objects)
  {
    if (o != null)
    {
      if (o is IDisposable)
      {
        IDisposable disposable = o as IDisposable;
        disposable.Dispose();
      }
    }
  }
}