能让代码分析理解代码契约吗?

2024-01-08

当组合使用代码分析和代码契约时,我收到很多警告,例如

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(使用前将#替换为@)

能让代码分析理解代码契约吗? 的相关文章

随机推荐

  • 将基于 Java 的 API 与 Django 结合使用

    我正在使用 Django 创建一个网站 并希望将 Google Play 商店 Android Market 中的数据合并到其中 我考虑过手动抓取商店 但看起来这可能是一个缓慢而乏味的过程 所以我决定考虑其他选项 即一个名为android
  • 将 /var/run/docker.sock 挂载到容器中时,使用哪个文件系统进行卷挂载?

    我有一个容器 其中包含用于协调主机上微服务部署的逻辑 让我们将此服务称为deployer 为了实现这一目标 我安装了 var run docker sock文件从主机到那个deployer容器 所以 表演的时候docker run hell
  • Spring BeanPostProcessor 究竟是如何工作的?

    我正在学习 Spring Core 认证 我对 Spring 如何处理这些问题有一些疑问Bean 生命周期特别是关于Bean 后处理器 所以我有这个架构 我很清楚这意味着什么 以下步骤发生在加载 Bean 定义 phase The 配置类被
  • 如何在 Visual Studio 2008“Pro”中进行性能分析

    微软将这款软件称为 Visual Studio 2008 Professional 我发现其中似乎没有应用程序性能分析器或类似的东西 这使得它对我来说似乎不那么 专业 如果 Microsoft 不包含分析器 您有哪些第三方选项可以用于 Vi
  • 数据仓库中的时间和日期维度

    I m building a data warehouse Each fact has it s timestamp I need to create reports by day month quarter but by hours to
  • 如何分配线程来处理 Servlet 请求?

    有人可以解释一下什么是每个请求线程和每个连接线程吗 servlet 适用于哪种模型 如何分配线程来处理 HTTP 请求 是线程 请求还是连接 假设我想在我的计算机中执行一项耗时的任务Servlet s doGet 方法异步 我使用 Java
  • 无需预处理器即可扩展 C/C++ 函数宏

    如何在 C C 文件中测试 扩展所有函数宏 而不通过预处理器运行它 例如 是否有一个程序或方法可以改变这一点 include
  • PHP服务器ERR_CONNECTION_REFUSED

    我无法让 php 服务器在我的本地计算机上运行 我尝试使用 wampserver 和 Easy PHP 我检查了我的使用情况port 80 我更改了端口 80 to 8080 我给了 Apache 和 mysql 防火墙设置所需的权限 我做
  • 在 WPF 中将窗口的 DataContext 绑定到窗口本身

    我有一个继承自 Window 的简单对话框窗口 我在 XAML 中设置它的 DataContext 如下所示
  • 从 efi 应用程序发送 TCP 或 UDP 数据包

    我想开发一个在 EFI shell 中从startup nsh 自动执行的应用程序 此应用程序应将原始字节发送到 IP 地址并接收一些返回的字节 我到处寻找在我的代码中实现简单网络协议的解释和示例 但一无所获 有人可以解释并显示使用 gnu
  • C# 构造函数执行顺序

    在 C 中 当你这样做时 Class Type param1 Type param2 base param1 是先执行类的构造函数 然后调用超类构造函数 还是先调用基类构造函数 顺序是 层次结构中所有类的成员变量都初始化为默认值 然后从最派
  • 如何在 Swift 中将 base64String 转换为 String? [复制]

    这个问题在这里已经有答案了 我从 NSData 中的 Web 服务响应接收到一个 base64 字符串 如何在 swift 中将 dat base64 字符串转换为字符串 Code var jsonResult NSJSONSerializ
  • 使用外部数据扩展 Keycloak 中的用户访问令牌

    我们使用 Keycloak 服务作为 SSO 解决方案 并将生成的 JWT 提供给不同的微服务 效果非常好 但现在我们遇到的问题是 当用户尝试登录时 JWT 必须使用来自外部资源的数据进行扩展 更具体地说 一个用户可以通过一个唯一的ID作为
  • 如何使用Wix安装.NET Framework的可再发行包?

    我有一个一般任务 在产品设置过程中安装 NET Framework 3 5 我执行以下操作 我创建了一个自定义操作 X 自定义操作 X 通过 Process Start 启动可执行文件 Y 可执行文件 Y 终止 msiexec 进程并运行
  • LPHANDLE 与 HANDLE

    在浏览一些代码时 我发现了一个调用打开打印机 http msdn microsoft com en us library dd162751 aspx 该代码可以编译并且运行良好 但是 我们正在通过一个HANDLE代替LPHANDLE 如 M
  • 正则表达式匹配 ini 值

    我正在尝试匹配 ini 行值的姓氏 foo bar far boo some value 我可以匹配 boo 但我只需要 boo I do w s 但它匹配等号 但我不希望它匹配 顺便说一句 如果没有像这样的子值 我应该能够得到 foo v
  • 使用子模块创建公共存储库

    我想创建一个包含多个子模块的公共存储库 裸存储库 我希望不同的人克隆这个裸存储库 在任何子模块中进行更改 更新公共存储库 然而 我意识到这是相当痛苦的 我希望我的存储库如下所示 我有四个独立的存储库 a kernel b rootfs c
  • 无法在 XML 文件上 insertBefore

    我正在尝试编写一个脚本来更新 RSS XML 文件 我希望它获取现有文件并将新项目添加到项目列表的顶部 我之前已经将其添加到文件末尾 但现在它根本没有添加新项目 我已经在网上检查过 但仍然无法使其工作 这是我到目前为止所拥有的 rssDoc
  • python 模块存储在哪里?

    我最近开始学习Python 有两个与模块相关的问题 有没有办法获取机器上可用 即安装 的Python模块列表 我使用 Ubuntu Karmic 和 Synaptic 进行包管理 我刚刚安装了一个 python 模块 模块代码实际存储在我的
  • 能让代码分析理解代码契约吗?

    当组合使用代码分析和代码契约时 我收到很多警告 例如 CA1062 http msdn microsoft com en us library ms182182 aspx Microsoft Design 在外部可见的方法 Foo Bar