我目前在 ASP.NET MVC 应用程序中使用Microsoft Code Contracts没有任何问题,但我似乎无法在基本的 ASP.NET 网站中完全运行它。我不完全确定它是否适用于这种类型的项目(尽管它不应该重要)所以我想把它带给每个人。
我可以很好地编译合同,但代码会跳过它们,因为我假设它没有像在其他项目类型(即 ASP.NET MVC)中那样通过属性页面启用。我已经在我的 ASP.NET 网站中访问了项目的属性页面(显示对话框而不是典型的属性页面),但它没有产生相同的菜单选项,因此没有专门的部分到代码合同。
此外,我在一个类库项目中正确启用了 Microsoft 代码合同,我用它来将我的业务逻辑与网站分开。合同编译得很好,但是当违反合同时,它会抛出一个相当无信息的"Exception of type 'System.ExecutionEngineException' was thrown"
错误,没有内部异常。我的合同指定了在违规时显示的消息,但它不在例外范围内。它只是停止进程的执行(我相信这是 Microsoft 代码合同的默认功能)。
我找不到任何明确说明特定项目类型可以或不能(或不应该)与合同一起使用的地方,所以我只是想看看是否有人遇到过这个问题。
谢谢你的帮助!