.NET 3.5 的代码契约搞乱了 VS10 的调试器

2023-11-22

我最近使用代码契约迁移了很多手动前提条件测试和异常抛出。我没有升级到 .NET 4,而是使用Microsoft.Contracts.dll程序集,这样我就可以坚持使用 .NET 3.5 更长的时间(这是一个由 .NET 3.5 和 .NET 4 程序集使用的库)。我已经在 Visual Studio 2010 中设置了合同重写器,合同工作得很好。

然而,自从我完成了该切换后,我注意到调试器在具有契约的方法中表现得很有趣,尤其是在具有 ContractInvariantMethod 的类中。执行光标似乎并不总是与突出显示的行匹配,某些断点无法被命中,并且我有一种方法,其中调试器无法告诉本地变量名称并会显示类似的内容CS$1$0000。这是在调试版本中。

使用代码合约是否存在已知问题Microsoft.Contracts.dll在 .NET 3.5 到 VS10 中? .NET 4 中的代码契约是否会出现类似的问题?

[编辑] 这个问题导致我在 Microsoft Connect 上创建了一个错误:https://connect.microsoft.com/VisualStudio/feedback/details/573983/code-contract-rewriting-messes-up-local-variable-names-in-iterator-methods-while-debugging


我希望你知道合约重写意味着什么——动态生成的额外代码,没有任何源代码可供编译器锁定。由于 CLR 具有如此多不同的元素,因此调试器要么根本不会做很多事情,要么会感到困惑,只有具有广泛影响的完整语言功能的事情才能获得完整调试器支持的预算。例如 lambda 表达式。

这并不是说提交错误没有好的理由,只是当您使用尚未完全开发的方面时,您不应该期望任何事情都会变得更好。成为早期采用者总是要付出这样的代价,但也有吹牛的权利:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 3.5 的代码契约搞乱了 VS10 的调试器 的相关文章

  • 去除字符串的最佳方法是什么?

    我需要具有最佳性能的想法来删除 过滤字符串 I have string Input view 512 3 159 删除 view 和 的最佳性能方法是什么 和引号 我可以做这个 Input Input Replace view Replac
  • 如何查找局域网中所有主机上正在运行的程序的所有实例?

    出于实际目的 SqlDataSourceEnumerator 的作用是查找在 LAN 上的各个 PC 上运行的 SQL Server 的所有实例 是否有等效的方法可以查找任意应用程序的运行实例 编辑 好的 所以这只有效 因为这些应用程序有预
  • 在调用堆栈中看到大量 clr!CLR Semaphore::Wait

    我们看到很多像下面这样的调用堆栈 我可以知道什么条件 情况会发生这种情况吗 OS Thread Id 0x48654 559 Current frame ntdll NtWaitForSingleObject 0xa Child SP Re
  • 如何将智能感知添加到我的应用程序中?

    我们的一款产品拥有一种专有的宏语言 通过我们的 Windows 软件进行编辑 我想添加智能感知 但我不知道如何去做 至少不完全重新发明轮子 是否有任何示例代码或第 3 方包至少可以让我开始 它不一定是免费的 该应用程序使用 NET 用 C
  • 在 DataGridView 中隐藏行非常慢

    我在 Winforms 应用程序中有一个 DataGridView 大约有 1000 行 未绑定 和 50 列 隐藏一列需要整整 2 秒 当我想隐藏大约一半的行时 这就成为一个问题 private void ShowRows string
  • printf() 使用字符串表“解码器环”调试库

    我写这封信是想看看你们中是否有人见过或听说过我即将描述的想法的实现 我有兴趣为嵌入式目标开发 printf 风格的调试库 目标非常遥远 并且我和目标之间的通信带宽预算非常紧张 因此我希望能够以非常有效的格式获取调试消息 通常 调试语句如下所
  • 如何在 C# 中以编程方式创建柔和的颜色?

    根据所需的颜色数量均匀分布地生成它们 如果指定的计数为 8 则看起来像这样 List
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所
  • 如何让 LinqToSql 将“索引提示”传递给 sql server?

    由于我们不能相信我们的客户会更新 sql server 中的索引统计信息等 因此我们过去不得不使用索引提示 http www sql server performance com tips hints general p1 aspx 由于我
  • Sitecore - 隐藏功能区中的按钮

    我为特定内容项创建了上下文功能区 我有两个按钮 可以将项目 升级 或 降级 到某一类别 该部分只能有一个 是否可以根据某种隐藏代码中的内容状态隐藏其中一个按钮 我了解如何链接到 Click 事件 但我想知道是否有某种加载事件可供自定义功能区
  • 调整图像的亮度、对比度和伽玛值

    在 NET 中调整图像的亮度 对比度和伽玛值的简单方法是什么 c and gdi have a simple way to control the colors that are drawn It s basically a ColorMa
  • CompileAssemblyFromDom 抛出访问被拒绝异常

    代码 using var codeProvider new CSharpCodeProvider var compilerParameter new CompilerParameters assemblies assemblyName fa
  • “你好世界!!”在 .NET 4 中生成 3500 个页面错误

    我正在运行 Windows Vista 和 Visual Studio 2010 使用 NET 4 2 GB RAM 和大约 800 MB 可用空间 我创建了一个 Windows 窗体应用程序 但没有向其中添加任何代码 只需在发布模式下编译
  • 为什么当要求修剪“PRN.NUL”时,TrimStart 会更多地修剪字符?

    这是代码 namespace TrimTest class Program static void Main string args string ToTrim PRN NUL Console WriteLine ToTrim string
  • 如何等待远程 .NET 调试器连接

    今天我遇到了一个问题 我需要远程调试程序 该程序是从另一个系统启动的 所以我真的没有机会在命令行上与它交互 不过我可以很容易地改变它的来源 我需要做的是让程序正常启动 然后等待我用调试器附加到它 我想不出一个让我快乐的方法 我确实发现了这个
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som

随机推荐

  • 如何创建精灵图像

    我正在尝试创建一个非常基本的精灵图像 首先 我有一个现有的图像 宽度 100px 高度 100px 我将循环浏览该图像 10 到 100 次 每次都将其放置在前一个图像旁边的精灵上 精灵的宽度限制为 3000 像素 将图像彼此相邻放置很好
  • Android 日期选择器材质风格

    我已经在我的片段上实现了日期选择器 这是代码 edittext from setOnClickListener new OnClickListener Override public void onClick View view final
  • 我如何通过 googledrive api 从 googledrive 获取多个文件?

    我想知道如何从谷歌驱动器获取多个文件 我在参考文献中搜索了此内容 但没有找到此信息 我正在构建一个 Web 应用程序 它将与驱动器通信并检索要下载的 zip 文件的链接 文件的 Zip 我正在使用 php 和 api v2 目前 Drive
  • HTML5 音频元素在 IE10 中不起作用,但在 Chrome 中起作用。为什么?

    HTML5 音频在 IE10 中不起作用 但在 Chrome 中起作用 任何想法 使用的 HTML 如下 Win8或RT上的IE10不支持wav 但是 IE10 Mobile支持 我附上了屏幕截图 以便您可以了解 IE10 都支持哪些格式
  • Rails:在数据库中存储二进制文件[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 使用Rails 是否有理由将附件 可以是任何时间的文件 存储在文件系统中而不是数据库中 数据库对我来说似乎更简单 无需担心文件系统路径 结构等 您只需查看 blob 字段即可 但大多数人似
  • 执行图像减法时退出代码 139

    我正在使用 python 执行图像减法 我有 numpy 数组形式的图像 包含所有图像的列表的大小为1000 列表中的每个numpy数组都是360 640类型 当帧数在 300 左右时 帧减法是正确的 def find der frames
  • 未定义的方法“protect_against_forgery?”对于 #<#<类:0x0

    我的routes rb 文件中有以下代码 resources users do member do get following followers end collection do put activate email end end 我
  • 如何 grep 查找整个单词

    我正在使用以下命令来 grep 子目录中的内容 find xargs grep s s text 然而 这也会发现类似的东西
  • JVM - 堆和栈

    每当加载一个类时 什么存储在堆中 什么存储在堆栈中 另外线程驻留在哪里 引用类型位于堆中 任何原始类型数据和对堆上值的引用 方法的参数 局部变量 都在堆栈上 每个线程都有自己的堆栈 应用程序中的所有线程共享相同的堆
  • 在哪里可以找到 Jet 4.0 引擎使用的特定类型 SQL 的文档?

    我认为这与 MS Access 使用的相同 但我认为与 MySQL 和其他人使用的不同 我需要 SQL 语言的这种特定 种类 或 子集 的文档 Here是最新版本的 Access SQL 参考 Access 2010 然而 Remou 的回
  • C# 中空合并赋值运算符的实际用途?

    C 中的空值 C 的一项新功能使我们能够去掉代码中的空值 with 可为空的引用类型 我们鼓励添加
  • python中求最小值和最大值

    我必须要求用户输入一些数字 然后打印大小 总和 平均值 最小值和最大值 我可以得到前三件事 但我被困在最小和最大的一个上 我遇到的问题是我无法使用sort 因为我需要使列表成为整数一 但你不能使用整数列表split 这是我的代码 numbe
  • 有没有更好的方法在 bash 中运行命令 N 次?

    我偶尔会运行这样的 bash 命令行 n 0 while n lt 10 do some command n n 1 done To run some command连续多次 在本例中为 10 次 Often some command实际上
  • “错误:找不到符号 HashMap”[重复]

    这个问题在这里已经有答案了 尝试创建 或者更确切地说学习 a HashMap以下方式 public class Demo public static void main String args System out println Star
  •  编码问题

    我正在使用 PHP 开发一个网站 这些奇怪的字符 出现在我的页面上 就在它的顶部 我的代码是这样的 但是当我在浏览器中查看源代码时 它显示
  • 实体框架失去 Sql DateTime 精度

    我正在使用 Entity SQL 查询我的 EDM 但我的 DateTime 值失去了毫秒精度 例如 2011 7 20 12 55 15 333 PM 更改为 2011 7 20 12 55 15 000 PM 我已经确认在 SQL 中毫
  • 按子数组键值对多维数组进行排序

    为此发布了类似的问题和答案 但没有一个与我的数组的结构完全匹配 所以如果我错过了一些东西 我深表歉意 这是由 WordPress wpdb 类生成的数组 Array 0 gt Array meta id gt 37850 post id g
  • 如何在纯SQL中编写空安全比较“<=>”?

    在Mysql中有一个比较运算符是空安全的 我在 Java 程序中创建准备好的语句时使用它 如下所示 String routerAddress getSomeValue String sql SELECT FROM ROUTERS WHERE
  • 正则表达式匹配字母字符[重复]

    这个问题在这里已经有答案了 我有这个正则表达式 if cadena matches a zA Z return true 它接受从 A 到 Z 的小写和大写 还接受空格 但这仅适用于英语 例如 在加泰罗尼亚语中 我们有 字符 此外 我们还有
  • .NET 3.5 的代码契约搞乱了 VS10 的调试器

    我最近使用代码契约迁移了很多手动前提条件测试和异常抛出 我没有升级到 NET 4 而是使用Microsoft Contracts dll程序集 这样我就可以坚持使用 NET 3 5 更长的时间 这是一个由 NET 3 5 和 NET 4 程