【发布时间】:2018-09-18 16:29:02
【问题描述】:
在 Visual Studio 2013 Ultimate 中,Microsoft 引入了一个名为 CodeLens 的功能。一个方便的功能(除其他外)能够计算项目中引用方法的次数。
目前我们正在使用 VS2015 Pro,我正在开发一个包含多个项目的大型解决方案。
问题
考虑以下类:
public class MapItem
{
public int Id { get; set; }
public string Provider { get; set; }
public string Value { get; set; }
public bool MainItem { get; set; }
public int? MapId { get; set; }
public override string ToString()
{
return $"Provider: {Provider}, Value: {Value}, MainItem: {MainItem}";
}
}
CodeLens 将计算每个属性被引用的次数,并将其添加到每个属性的声明之上。我还重写了ToString() 方法,以便在打印时轻松读取值。
现在,每当我打开带有 ToString() 声明的文件或对文件进行更改时,Visual Studio 都会开始计算 ToString() 的每个场合的引用使用。即使不使用此类中的此特定方法。
这会导致 Visual Studio 使用我所有的 CPU (95%+) 并在几分钟内变得无响应。
我的问题
我已经学过how to disable CodeLens reference counting completely,但这不是我想要的。我想知道的是,是否有任何方法可以告诉 CodeLens 通常停止对 单一方法 的引用计数,特别是 ToString()(可能是属性或黑名单?)。这样,Visual Studio 就不必在每次引用被覆盖的方法时都进行计数的麻烦。或者,我想只查看对MapItem.ToString() 的引用量。
【问题讨论】:
-
是的,我也注意到了这一点。 CodeLens 在这种情况下确实表现不佳,我不知道为什么它不会在大约 50 次引用或您可以配置的任何其他限制后停止计数。我完全禁用它作为唯一的解决方案。
-
@BugFinder 怎么样?我从一开始就表示我已经知道如何做到这一点并且也说过。我在这里寻找不同的解决方案。无论哪种方式,我都更新了我的问题,希望能更清楚。
标签: c# visual-studio codelens