当组合使用代码分析和代码契约时,我收到很多警告,例如
CA1062 http://msdn.microsoft.com/en-us/library/ms182182.aspx:Microsoft.Design:在外部可见的方法“Foo.Bar(Log)”中,在使用参数“log”之前验证它。
在 Foo.Bar 中,我有一个可以验证的合约log
.
public Bar(Log log)
{
Contract.Requires(log != null);
log.Lines.Add(...);
// ...
}
有没有办法让 FxCop 理解代码契约?
不,我认为在当前版本中这是不可能的,因为合约重写器生成的代码不会产生 FxCop 正在寻找的标准模式。
通常,我在使用代码合约时会禁用此特定的 FxCop 规则。我发现静态验证器足以弥补这条规则的损失,因为它会比 FxCop 更积极地抱怨缺乏检查。我在这里建议使用相同的方法来为您解决这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)