gpt4 book ai didi

c# - MissingFieldException 与 CodeContracts

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:08 25 4
gpt4 key购买 nike

一旦我为代码契约打开代码重写器,我开始发现以前可以工作的代码存在问题。

我有一个 protected volatile bool 成员字段,它在继承 self 的类的其他程序集中是可见的。在我的程序集上启用 ccrewrite 后,对该字段的访问现在会抛出 MissingFieldException。

我知道以这种方式公开字段是不好的风格。一旦我更改为公开属性和/或删除 volatile 标记,问题就消失了。

我目前没有 100% 的代码覆盖率。

我的问题是,我如何才能仍然依赖代码契约,但让我的代码像以前一样工作?我怎样才能找到行为发生变化的所有地方?

代码契约版本 1.4.50327.0

Microsoft (R) .NET Contract Rewriter Version 1.4.50327.0

编辑 在 Code Contracts 中已经完成了一些工作,但发行说明并不出色。具体来说,目前还不清楚修复了什么。我在引用:

Release 1.4.51019.0 (October 19, 2012) Fixed more problems with the task manager in VS2012. Fixed a bug in CCDoc. Other miscellaneous bug fixes.

Release 1.4.50910.0 (September 10, 2012) Fixes the task manager so it runs correctly in VS2012: static checker now runs in the background, squigglies are drawn, and contract suggestions appear in the Error List. Updated the installer so that "devenv /setup" no longer needs to be run manually after installation. It is now done automatically as part of the installation. (Which makes the installation take a lot longer...) Fixes several bugs in CCDoc.

Release 1.4.50813.1 (August 13, 2012) Bug fixes (everywhere!). Performance improvements (static checker). Precision improvements (static checker). Fixes to installer and build files.

Release 1.4.50327.0 (March 27, 2012) VS2012 support! (But you need to run "devenv /setup" manually after installation!) Bug fixes.

最佳答案

我在内部版本中修复了这个问题。它将出现在下一个版本的 CodeContracts 中。

编辑这是 Code Contracts site 的发行说明:

1.5.60502.11 版(2013 年 5 月 2 日)

  • 修复构建脚本以不警告 C/C++ 互操作项目缺少合约引用程序集
  • 修复 VB 构造函数提取
  • 在从契约(Contract)调用时正确处理接口(interface)契约(Contract)中的泛型方法。
  • 修复非空分析中拆箱的处理(避免空解引用)
  • 更好地处理静态检查器中的可为空和装箱约束
  • 修复以在 F12 上显示 setter 契约(Contract)(转到元数据)
  • 更强大地检查编辑器扩展的实现
  • 减少了 ccrewrite 的内存消耗和启动时间
  • 在非空分析中处理 MEF 导入属性
  • 在重写器中保留对可变字段的交叉组装访问。
  • 修复了构造函数中存在闭包时合约提取器中的错误。
  • 修复当缩写方法具有静态通用闭包方法时重写器中的错误。
  • 在框架的 4.5 之前版本上支持异步。

关于c# - MissingFieldException 与 CodeContracts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com