CodeContracts问题

Dav*_*ita 4 c# visual-studio-2010 code-contracts visual-studio

您好CodeContracts有一点问题.我有一个类库项目,它作为一个带有方法foo的类(字符串s1,字符串s2); 在foo方法中,我有一个Contract.Requires(s1!= null).因此,如果我理解我的代码的含义(是的,我刚刚安装了CodeContracts并使用:),合同将在构建过程和运行时检查s1!= null表达式,抛出ArgumentException>.我想测试行为,当我从类lib项目调用foo(null,"test")时,设计师告诉我这个问题,但是当我从winform app项目调用它时,我没有得到任何警告错误列表窗口.那么这是否意味着代码合同只适用于它们所在的项目而不是外部?谢谢

UPDATE


我忘了提到我添加的前提条件在静态分析中不起作用.但是,它们会在运行时使用适当的消息抛出ArgumentException.

Dav*_*ita 6

好的,多亏了MS团队,我发现了问题.这种奇怪行为的原因是我的程序集的名称以".Contracts.dll"结尾.问题是静态分析器不会检查名称以此结尾的程序集.我重命名了程序集,一切都像魅力一样,就像任何其他MS产品一样:)

  • 绝对的生命保护,让我疯了! (2认同)