如何抑制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?
使用这种属性似乎不可能抑制此错误:
[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>