考虑以下代码
public void AMethodWithAnotherRequiredArgument([Required] string aRequiredArgument)
{
Debug.WriteLine("You passed in a string with a length of {0}", aRequiredArgument.Length);
}
它将触发CA1062(验证公共方法的参数),该方法实际上无效,因为PostSharp正在执行验证,其方式与
public void AMethodWithARequiredArgument(string aRequiredArgument)
{
Throw.IfNullOrEmpty(aRequiredArgument, "aRequiredArgument");
Debug.WriteLine("You passed in a string with a length of {0}", aRequiredArgument.Length);
}
已验证。
有什么方法可以使FXCop / SCA识别出我通过[Required]属性覆盖了该方法,而没有为每个方法添加手动例外?
戴夫
有一篇简短的文档文章介绍了将PostSharp与FxCop一起使用。它描述了PostSharp实际上修改了构建过程,以确保在对程序集执行Code Analysis之前,它们被PostSharp增强(在obj\...\Before-PostSharp
文件夹中)。
这是必需的,因为PostSharp处理的程序集可能导致FxCop生成太多不相关的警告。
正确的解决方案是禁用原始FxCop验证规则,并将其替换为知道PostSharp验证方面的自定义规则。当前,PostSharp不提供此自定义规则。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句