从您获得的标签“CSharpAddImportCodeFixProvider”来看,我猜您的问题是由于 Visual Studio 试图识别和/或更正您引用的 C# 源代码文件顶部缺少的“使用”语句到需要它的班级。通常处理此类问题的 Visual Studio 组件是 Intellisense,或第三方语法高亮/纠正插件,如 JetBrains 的 ReSharper。
再想一想,我不太确定这是 Intellisense 的错,而不是 ReSharper 插件的错。这是有待确定的。
我确实向 Microsoft 提交了类似的错误报告。我的错误似乎是由于 Intellisense 不知道如何处理我自己的代码中的逻辑错误(请参阅https://connect.microsoft.com/VisualStudio/feedback/details/3133049)。
在我的例子中,我无意中将一个方法的代码放在了它的类定义之外,尽管在它类似命名的命名空间内。Visual Studio 2015 更新 3 抱怨,
“GenerateVariableCodeFixProvider”遇到错误并已被禁用。
解决方法是将我的方法移回其相应的类定义中,但它肯定会导致 Visual Studio 错误浮出水面。
具体来说,Visual Studio Intellisense 已经看到了这行代码,
Response.Write("I did something");
放置在在类定义之外(即,在名称空间内,但无意中不在其类内)声明的方法中。“'FeatureLabel' 遇到错误并已被禁用”错误随后显示在我的编辑器窗口顶部的黄色栏中,旁边显示“启用”按钮和“启用并忽略未来错误”按钮。
我相信 Intellisense(或 ReSharper?)试图自动处理这种情况并试图为关键字“Response”生成一个变量,但它试图这样做却失败了——这反过来又导致了显示的错误。