【发布时间】:2009-07-27 16:02:11
【问题描述】:
标题涵盖了一切。我希望实现 IDisposable 的类以特定颜色显示,这样我就可以知道是否应该将它们包装在 using 块中。是否有可以扩展 IDE 的设置或过程?
【问题讨论】:
标签: c# visual-studio ide
标题涵盖了一切。我希望实现 IDisposable 的类以特定颜色显示,这样我就可以知道是否应该将它们包装在 using 块中。是否有可以扩展 IDE 的设置或过程?
【问题讨论】:
标签: c# visual-studio ide
我认为一旦 Roslyn 出现,这将变得更容易/无需扩展,但这目前并不容易,因为您无法轻松地从扩展中访问 C# 代码。
在 Resharper 中,这很简单!我的示例在 ReSharper 9.0 中进行了测试。可悲的是,没有简单的方法可以将其提供给您。
new $disp$($args$)的模式
Type,名称:disp,类型:System.IDisposable
Arguments,名称:args
保存,您现在将在构建新的一次性用品时收到“建议”。
添加模式$disp$ $var$ = $exp$; 也可能会有所帮助。
Type,名称:disp,类型:System.IDisposable
Expression,名称:exp
Identifier,名称:var
【讨论】:
$args$,而错过了提及$var$?抱歉打扰了,我是新来的。
当然可以做到这一点,尽管它不像更改设置那么简单。您需要编写一个 Visual Studio 插件来完成此操作。
访问http://msdn.microsoft.com/en-us/vsx/bb980955.aspx 开始使用。正如其他人会指出的那样。这不适合胆小的人。
这里有一个链接可能会指向您正在寻找的内容:http://msdn.microsoft.com/en-us/library/bb166778.aspx
【讨论】:
你不能。这将需要语言服务支持,而 C# 或 VB.Net 均不提供此功能。
“不能”这个词可能太强了。当然可以使用插件来执行此操作,该插件对代码进行深入检查并找出层次结构。然而,这是一项非常重要的任务。
【讨论】:
我不确定 FXCop 或 StyleCop 是否已经可以做到这一点。但是,这将是一个编译后的建议/警告。
我猜是 Resharper 建议的。
【讨论】:
当然,有很多工具可以构建 VS 扩展,see Visual Studio 2008 SDK 1.1 但是构建此类加载项所需的时间将需要您花费更多时间来浏览组件并确定它们是否是一次性的
【讨论】:
大街上的字是这种东西会be much easier in VS.NET 2010。编辑器正在 WPF 中重写。
【讨论】:
也许我这样做是个坏人,但我最近一直在使用这段代码:
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();
}
}
}
}
【讨论】: