如何抑制StyleCop错误SA0102:CSharp.CsParser:使用泛型类型参数属性时,在文件中发现语法错误

本文关键字:错误 文件 语法 发现 属性 SA0102 StyleCop 何抑制 CSharp CsParser 泛型类型参数 | 更新日期: 2024-09-22 04:18:53

具有以下具有泛型类型参数属性的C#代码:

[System.AttributeUsage(System.AttributeTargets.GenericParameter)]
public class GenericParameterAttribute : System.Attribute
{
}
public class GenericClass<[GenericParameter] T>
{
}

启用StyleCop集成(StyleCop.targets导入.csproj文件)StyleCop返回错误,编译失败:

错误1 SA0102:CSharp.CsParser:在文件中发现语法错误。。。

没有StyleCop.targets导入.csproj文件编译正常.

环境

  • StyleCop版本4.7.47.0(最新可从http://stylecop.codeplex.com/releases/view/79972)
  • .NET Framework 4.0

我在StyleCop文档网站上找不到代码SA0102http://www.stylecop.com/docs/StyleCop%20Rules.html-SA0102似乎不是StyleCode规则,可能是内部StyleCode错误的代码。

所以问题是:如何抑制StyleCop错误SA0102?

如何抑制StyleCop错误SA0102:CSharp.CsParser:使用泛型类型参数属性时,在文件中发现语法错误

使用这种属性似乎不可能抑制此错误:

[SuppressMessage("StyleCopNameSpace", "SA0102:RuleNameHere")] 

如本文所述,当StyleCop遇到内部错误时,会显示此消息:

jasonal2010年5月18日晚上10:00:实际上无法抑制SA0101或SA0102。这些是特殊情况下的"规则",每当StyleCop遇到内部错误时就会抛出。对您来说,唯一的解决方案是完全禁止分析此文件,或者在升级到StyleCop 4.4之前停止使用可选参数。

在.csproj文件中查找要从StyleCop中排除的文件,并添加ExcludeFromStyleCot元素,如下所示

<Compile Include="<filename>.cs">
  <ExcludeFromStyleCop>True</ExcludeFromStyleCop>
</Compile>