C# 具有可观察集合的类的二进制序列化失败 最后更新:以下是真正的问题、解决方案和一篇好文章:

C# 具有可观察集合的类的二进制序列化失败 最后更新:以下是真正的问题、解决方案和一篇好文章:,c#,.net,wpf,observablecollection,C#,.net,Wpf,Observablecollection,问题是哪个被序列化的类有一个事件。解决方案是在事件声明前面放置一个[field:NonSerialized]。我被提到以下文章: 感谢微软的解决方案* Microsoft正在调查此问题。在这一点上,还不清楚问题是ObservableCollection还是其他问题。感谢所有回应的人* 我向可序列化类添加了一个ObservableCollection。当我试图将其写入二进制文件时,会引发异常。使用VS 2019版本16.7.3和.NET 4.8.04084 我在UI上收到以下错误消息: 错误:程序

问题是哪个被序列化的类有一个事件。解决方案是在事件声明前面放置一个[field:NonSerialized]。我被提到以下文章:

感谢微软的解决方案*

Microsoft正在调查此问题。在这一点上,还不清楚问题是ObservableCollection还是其他问题。感谢所有回应的人* 我向可序列化类添加了一个ObservableCollection。当我试图将其写入二进制文件时,会引发异常。使用VS 2019版本16.7.3和.NET 4.8.04084

我在UI上收到以下错误消息:

错误:程序集“WindowsBase,版本=4.0.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”中的类型“System.ComponentModel.PropertyChangedEventManager”未标记为可序列化

这看起来像是至少8年前讨论过的一个问题,据报道,.NET4.0已经解决了这个问题。但很明显,我现在遇到了。有人知道如何解决二进制序列化的问题吗?我必须使用ObservableCollection进行绑定


谢谢。

这看起来像是一个讨论过的问题-请引用您用来证明该陈述的参考资料。很明显,我现在遇到了它——如果你不给我们看,没有什么是显而易见的。请包括可靠地再现问题的。请在此添加有意义的代码和问题描述。发布一个能证明你的问题的帖子会帮助你得到更好的答案。谢谢事实上,如果有人努力使ObservableCollection可序列化,我会感到非常惊讶,而且现在肯定不会发生这种情况,因为二进制序列化在大多数情况下都是不推荐的。最简单的解决方法是序列化其他内容-您不需要将ObservableCollection序列化为实际的可观测集合,只需将其序列化为数组,然后在序列化回时,使用该数组初始化集合。