使用以下带有泛型类型参数属性的C#代码:
[System.AttributeUsage(System.AttributeTargets.GenericParameter)]
public class GenericParameterAttribute : System.Attribute
{
}
public class GenericClass<[GenericParameter] T>
{
}
打开StyleCop集成(在.csproj文件中导入StyleCop.targets) StyleCop返回错误并且编译失败:
错误1 SA0102:CSharp.CsParser:在文件中发现语法错误...
没有在.csproj文件中导入的StyleCop.targets编译好。
环境
我在StyleCop文档站点http://www.stylecop.com/docs/StyleCop%20Rules.html上找不到代码SA0102 - 似乎SA0102不是StyleCop规则,可能是内部StyleCop错误的代码。
所以问题:如何抑制StyleCop错误SA0102?
答案 0 :(得分:10)
使用这种属性似乎无法抑制此错误:
[SuppressMessage("StyleCopNameSpace", "SA0102:RuleNameHere")]
与此Post相关,当StyleCop遇到内部错误时会显示此消息:
jasonall 2010年5月18日晚上10点:实际上无法抑制SA0101或SA0102。这些是特殊情况“规则”,只要StyleCop遇到内部错误就会抛出这些规则。唯一可行的解决方法是从分析中完全禁用此文件,或者在升级到StyleCop 4.4之前停止使用可选参数。
答案 1 :(得分:4)
在.csproj文件中查找要从StyleCop中排除的文件,并添加ExcludeFromStyleCop元素,如下所示
<Compile Include="<filename>.cs">
<ExcludeFromStyleCop>True</ExcludeFromStyleCop>
</Compile>