这个错误应该被修复吗?

2024-02-18

昨天我在.Net框架中发现了一个bug,并且发现这是一个已知的bug,不会被修复。简而言之,该错误在于,当将 int (以及可能的其他二进制类型)分配给该字段时,包含 IComparable 类型字段的类无法进行二进制序列化和反序列化:

[Serializable]
public class Foo
{
    public IComparable Value;
}

如果您尝试序列化(和反序列化)以下两个对象,第一个对象将成功,第二个对象将失败:

var s = new Foo { Value = "foo" };
var i = new Foo { Value = 1 };

我在这里更详细地描述这一点:http://ondevelopment.blogspot.com/2009/11/fix-that-bug-will-ya-no.html http://ondevelopment.blogspot.com/2009/11/fix-that-bug-will-ya-no.html

您可以在此处找到错误报告(请注意,该报告来自 2006 年,并非由我提交):http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=91177 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=91177

这个问题不会被修复,因为“修复的风险超过了它的好处”。我没有看到任何(可行的)场景,这将是一个突破性的改变。所以我真正的问题是,有人能想到一个真正的场景,这将是一个突破性的改变吗?


我敢打赌,他们对本机类型(例如用于序列化的 int 甚至系统的其他部分)进行了一些非常人为的优化。

撤消这一操作可能存在风险,因为它可能会导致正确性或性能下降,或两者兼而有之。

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

这个错误应该被修复吗? 的相关文章

  • WCF服务健康状况监控

    我刚刚实现了 WCF 服务 目前正在研究服务监控选项 我们的服务器团队目前仅托管 java 服务 希望我们的实例始终运行 因此它可以在该实例的生命周期内收集数据 他们表示将使用我们的 webmon 操作之一来获取统计信息 但我们正在使用每次
  • 如何捕获一个 int

    我正在使用 IL 抛出一个 Int32 并捕获它 这只是出于好奇 我并没有试图实现任何目标 所以请不要告诉我抛出异常而不是 int method private hidebysig static void Main string args
  • 使用 XML 的 WCF 请求验证

    我有一个WCF使用 Net 4 0框架的SOAP Web服务 我在用contract first方法 即 服务代码是使用 WCSF Blue 工具从手写 WSDL 生成的 我对请求消息有以下要求 如果价格小于 100 则不得有税项 但如果大
  • 在后台进程中访问 WPF FlowDocument

    在后台访问 WPF FlowDocument 我的问题涉及在 WPF 后台访问 UI 对象 我见过几十个示例应用程序 它们都很简单 易于理解 其中 95 告诉你如何显示进度条 这并不是我想要的 我的问题是这样的 我想通过访问 RichTex
  • 如何证明 .NET CLR JIT 每次运行只编译每个方法一次?

    There s 一个老问题 https stackoverflow com questions 1255803 does the net clr jit compile every method every time 1255832每次询问
  • 面向对象的铸造错误[重复]

    这个问题在这里已经有答案了 将派生类强制转换为基类 我有一个通用的基本抽象类 继承自 IComparable 其定义如下 public abstract class BaseClass
  • 如何使用 PowerShell 中的凭据从本地复制到远程位置?

    我是 PowerShell 的新手 我有用户名和密码来访问远程位置的共享文件夹 I need 复制文件foo txt从当前位置到 Bar foo myCOmpany com logs在为以下内容编写的 PS1 脚本中Powershell v
  • smtpclient“发送邮件失败”

    这是我的代码 for int i 0 i lt number i MailAddress to new MailAddress iMail to MailAddress from new MailAddress iMail from iMa
  • 如何对私有方法进行单元测试?

    我正在构建一个类库 它将有一些公共和私有方法 我希望能够对私有方法进行单元测试 主要是在开发时 但它也可能对未来的重构有用 这样做的正确方法是什么 如果您想对私有方法进行单元测试 则可能会出现问题 单元测试 一般来说 旨在测试类的接口 即其
  • 当用户尝试打开新实例时返回到已打开的应用程序

    这是我有一段时间想不通的问题 防止第二个实例很简单并且有很多方法 但是恢复已经运行的进程则不然 我想 最小化 撤消最小化并将正在运行的实例置于最前面 在其他窗口后面 将应用程序置于最前面 我使用的语言是 VB NET 和 C 我发现这段代码
  • 在 C# 中在 Windows 标题栏区域中创建选项卡

    有人可以告诉我如何在 C Winforms 应用程序的标题栏区域中创建选项卡吗 我正在寻找类似于 Google Chrome 的外观 Chrome 中的每个选项卡都停靠在主应用程序窗口的标题栏中 尝试将表单的 FormBorderStyle
  • PhotoChooserTask 抛出未处理的异常

    我已经有了这段代码 我使用它来显示一个按钮 该按钮允许用户从他的库中选择图像并将其用作我的应用程序的背景 所以我创建了一个PhotoChooserTask 将其设置为显示相机并将其绑定到任务完成时必须执行的方法 该按钮将通过显示PhotoC
  • 如何对ArrayList(int)进行排序

    我怎样才能排序Arraylist按升序和降序排列 例子 ArrayList list new ArrayList list Add 2 list Add 8 list Add 0 list Add 1 如何按升序和降序对上面的列表进行排序
  • .NET Core 3 [JsonIgnore] 请求单个资源时不起作用

    在我的 net Core 3 0 API 中 JsonIgnore 属性无法正常工作 我在用着System Text Json 而不是旧的Newtonsoft Json 当我使用返回对象列表的资源时 例如 api Object 对象的序列化
  • 在 .NET 并发线程之间传递数据的最佳方式是什么?

    我有两个线程 一个需要轮询一堆单独的静态资源以查找更新 另一种需要获取数据并将其存储在数据库中 线程1如何告诉线程2有东西要处理 如果数据块是独立的 则将数据块视为要由线程池处理的工作项 使用线程池和QueueUserWorkItem将数据
  • Volatile.Read 和 Volatile.Write 背后的逻辑是什么?

    来自 MSDN Volatile Read 读取字段的值 在需要它的系统上 插入一个 阻止处理器重新排序内存的内存屏障 操作如下 如果在该方法之后出现读或写 代码 处理器无法移动它before这个方法 and Volatile Write
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 将日期时间转换为指定格式

    我有这个日期格式yy MM dd HH mm ss ex 12 02 21 10 56 09 问题是 当我尝试使用以下代码将其转换为不同格式时 CDate 12 02 21 10 56 09 ToString MMM dd yyyy HH
  • 如何使用 Roslyn 通过扩展方法、静态类中的方法以及带有 ref/out 参数的方法来访问调用

    我正在致力于创建一个开源项目 用于创建 NET UML 序列图 该项目利用名为 js sequence diagrams 的 javascript 库 我不确定 Roslyn 是适合这项工作的工具 但我想我应该尝试一下 所以我整理了一些概念
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • 从不同线程调用

    我不敢相信 这在我的其他应用程序中有效 但在这个具有类似结构的应用程序中 它不起作用 public string ListAdd set if listView1 InvokeRequired this Invoke MethodInvok
  • MySQL选择昨天的日期

    如何显示和统计日期为昨天的值 我用了time 在数据库中插入日期 例子 URL google com youtube com google com youtube com test com youtube com DateVisited 1
  • 在 Java 中打印数组

    我正在编写一个方法来打印它传递的每个对象 通过调用该方法可以正常工作Object toString 方法适用于对象 但不适用于数组 我可以找出它是否是一个数组Object getClass isArray 方法 但我不知道如何投射它 int
  • 继承的 CSS 属性的特殊性

    继承属性收到的 CSS 特异性级别是多少 我通读了有关 CSS 特异性的 W3 建议 因此我了解如何计算直接针对同一元素的 css 规则的不同特异性 但我没有看到其中提到继承属性的特异性级别 特别是 我遇到的问题与标题元素有关 尽管我很有兴
  • wpf按钮背景图片

    我有一个带有 5 个按钮的 wpf 页面 所有 5 个按钮必须具有相同的大小 并且必须具有相同的背景图像 这个怎么做 问候 卡恩 使用样式 这将自动应用于all窗口中的按钮
  • 如何在ansible命令中传递用户/密码

    我想使用 Ansible 作为另一个 Python 软件的一部分 在该软件中 我有一个主机列表及其用户 密码 有没有办法将 SSH 连接的用户 密码传递给 Ansible ad hoc 命令或以加密方式将其写入任何文件中 还是我理解错了 唯
  • 如何将变量从 awk 传递到 shell 命令?

    我正在尝试从 awk 中为文件的每一行运行 shell 命令 并且 shell 命令需要一个输入参数 我尝试使用system 但它无法识别输入参数 该文件的每一行都是一个文件的地址 我想运行一个命令来处理该文件 因此 对于一个简单的示例 我
  • 实体框架 - 我应该如何实例化我的“实体”对象

    我是实体框架和 ASP Net MVC 的新手 主要从教程中学习 但对两者都没有深入的了解 我确实有 Net 2 0 ADO Net 和 WebForms 的经验 我当前的怀疑来自于我实例化实体对象的方式 基本上我在我的控制器中这样做 pu
  • Python 数组重塑形状数组问题(无,192)

    我有这个错误 我不知道如何重塑有尺寸的地方None Exception Error when checking expected input 1 to have shape None 192 but got array with shape
  • 在 Rails 3.1 的开发模式下启用图像缓存

    在 Rails 3 1 开发模式中 使用资产管道时 从资产 图像中提供的图像会附带响应标头 缓存控制 必须重新验证 这意味着 Google Chrome 似乎只有 Chrome 将尝试多次重新获取图像 即使在单个页面视图期间也是如此 这导致
  • SSL_connect 返回=1 errno=0 状态=错误:在 ruby​​ 和 Ubuntu 14.04 中证书验证失败

    我有一个与第三方网络服务集成的 Rails 应用程序 自最初开发以来 它多年来一直运行良好 由于某种意想不到的原因 它突然停止工作了 我想说我们没有更改代码中的任何内容 唯一可以与之相关的是我们的 Letscrypt SSL 证书已过期并且
  • 使用 Entity Framework 4.0 中的上下文确定实体的主键

    我有几个从实体框架数据模型生成的实体 在 edmx 文件中 我可以看到标记为主键的属性 我的 POCO 自定义上下文是从此模板和 T4 模板生成的 我正在寻找一种方法来使用 Entity Framework 4 0 的反射来找出实体的主键
  • 自己的 std::is_function 实现

    建议here http en cppreference com w cpp types is function按以下方式实施 template
  • Java 8 ifPresent 与三元运算符

    你认为哪个更好 当然有争论 Optional ofNullable userName ifPresent nonNullUserName gt header setUser createUser nonNullUserName or hea
  • 如何实现 PlaceAutocompleteFragment 和 PlaceAutocompleteActivity 来获取地点详细信息

    我在用谷歌地方 https developers google com places android api hl en获取地点详细信息 Google 提供了不同的方式来实现 Google Place API 来获取地点详细信息 不同的方式
  • 返回值存储在内存的什么位置?

    返回值存储在内存的什么位置 考虑以下代码 int add int a int b int result a b return result void main int sum add 2 3 When add 2 3 被调用时 2个函数参数
  • 2012 年附加到流程

    我们曾经在 VS 2010 中附加了进程宏 这非常方便 既然宏在 Visual Studio 2012 中消失了 是否存在可以为我们执行此操作的插件 我们的宏将附加到 w3 exe 进程 这非常漂亮 也许我需要将宏转换为插件 我使用这个扩展
  • 神奇记录迁移失败“找不到源存储的模型”

    我们对 CoreData 模型进行了一些更改 看起来自动迁移失败了 即使我们将当前模型设置为用于生成数据的原始模型 仍然会出现错误 Reason 找不到源商店的模型 2014 09 05 02 19 43 297 948 166846 LB
  • 用户“postgres”的 Docker 密码身份验证失败

    我正在编写一个 docker compose 文件来启动一些服务 但数据库服务是个麻烦制造者 我总是收到此错误 FATAL password authentication failed for user postgres DETAIL Pa
  • 这个错误应该被修复吗?

    昨天我在 Net框架中发现了一个bug 并且发现这是一个已知的bug 不会被修复 简而言之 该错误在于 当将 int 以及可能的其他二进制类型 分配给该字段时 包含 IComparable 类型字段的类无法进行二进制序列化和反序列化 Ser