Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >调试C#中的序列化问题

调试C#中的序列化问题
EN

Stack Overflow用户
提问于 2010-07-21 22:24:40
回答 2查看 1.8K关注 0票数 1

我最近在我正在开发的一个应用程序中实现了一个复制和粘贴功能。这几乎可以达到预期的效果。

我在我的用户界面中创建了一个新项目,并且可以随时复制和粘贴它,而不会出现任何问题。

但是,当我复制并粘贴由上一次复制和粘贴操作生成的项目时,我得到了一个SerializationException。它会抱怨某个类型没有被标记为可序列化。

这就是混乱的开始。第一个复制和粘贴操作与第二个操作与相同类型的对象交互。但第二个结果是异常。

更详细地说,我有一个类Slide,这是复制和粘贴操作的目标类。因此,我将该对象的一个实例放在剪贴板中,并将其再次粘贴到同一个容器中。这就像预期的那样。现在我复制插入的对象并尝试粘贴它。这是抛出异常的时候。该异常抱怨类SlideEditorUiSlideEditorUi是一个与名为SlideEditor的类交互的UserControl。它又与Slide实例交互。但是没有一个Slide实例有一个对上述任何类的引用。

所以我真的想知道为什么序列化过程要考虑这个类。为什么它只在我复制副本时才这样做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-21 22:51:02

通常,此场景中的问题是事件持有对另一个对象的引用。BinaryFormatter跟随底层字段返回到对象,然后爆炸。

如果你能找到有问题的事件,你可以使用(对于“类似字段的”事件):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[field:NonSerialized]
public event SomeEventHandler EventName;

或者,对于显式实现,请将[NonSerialized]添加到支持字段。

或者,使用BinaryFormatter之外的其他格式;p或xml生成可以通过字符串使用的简单格式,或者对于较大/较复杂的对象,可以使用其他二进制序列化格式。

票数 2
EN

Stack Overflow用户

发布于 2010-07-21 22:36:18

错误是关于您的数据对象中不包含SerializableAttribute的一部分。为什么它不抛出序列化,而抛出重新序列化,我不知道。也许看到你想要序列化的POCO会更好一些。我怀疑的是,您确实遗漏了属性或字段的该属性。

请注意以下内容(来自上面的文档链接),特别是。“图”这个词意味着父类、聚合和引用的所有类都需要是可序列化的,这样才不会抛出错误:

将SerializableAttribute属性应用于类型,以指示此类型的实例可以序列化。如果要序列化的对象图中的任何类型未应用SerializableAttribute属性,则公共语言运行库将引发SerializationException。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3304377

复制
相关文章
C# .Net中.ashx 的断点跟踪调试问题
最近用Jquery的ajax调用.ashx,发现其中一个.ashx不能断点跟踪调试,搜索了一下发现从一个.ashx文件复制到另一个.ashx文件时,最容易出现问题。问题就在View Markup(中文叫查看标记),一定要保证Class的类名和namespace+class保证一致。
崔文远TroyCui
2019/02/27
2.1K0
C#中Serializable序列化实例
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bering
2019/12/02
1.8K0
学习总结——关于C#中的序列化
序列化(Serialization)是将对象的状态信息转化为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久存储区。以后就可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
MrLi001
2022/01/18
8950
JAVA中序列化和反序列化中的静态成员问题
关于这个标题的内容是面试笔试中比较常见的考题,大家跟随我的博客一起来学习下这个过程。
Spark学习技巧
2018/08/01
7360
C# 序列化与反序列化
对象持久化到文本文件,策略是:将对象的属性值打散,拆解,分别存储。 序列化:  保存对象的"全景图"  序列化是将对象转换为可保存或可传输的格式的过程  三种:   二进制序列器:    对象序列化之后是二进制形式的,通过BinaryFormatter类来实现的,这个类位于System.Runtime.Serialization.Formatters.Binary命名空间下     [Serializable] //使对象可序列化(必须添加)      特性       程序集,类,方法,属性都可以使用特性
房上的猫
2018/03/14
1K0
如何调试Kubernetes集群中的网络延迟问题?
就在不久前我也遇到了类似的问题,看似是玄学事件,刚开始归结于网络链路抖动,一段时间后依然存在,虽然影响都是 P99.99 以后的数据,但是扰人心智,最后通过多方面定位,解决了该问题。最后发现跟业务、网络都没有什么关系,而是基础设施自身出了问题,如下文给了一个具体排查方案,并从一定程度上解释了容器、cgroup、CPU 会给网络延迟带来怎样的影响。
公众号: 云原生生态圈
2022/04/08
2.1K0
如何调试Kubernetes集群中的网络延迟问题?
C# WPF中添加调试信息查看窗体
第二步:在主窗体image的MouseLeftButtonUp事件中调用调试窗口;
zls365
2020/12/29
6260
C# WPF中添加调试信息查看窗体
C#序列化反序列化帮助类
//转载:http://hi.baidu.com/fxh19860822/blog/item/df35230b3ded441495ca6bd5.html 在C#中常见的序列化的方法主要也有三个:BinaryFormatter、SoapFormatter、XML序列化 /// <summary> /// 提供序列化和反序列化对象的相关静态方法。 /// </summary> public class SerializerHelper { ///
跟着阿笨一起玩NET
2018/09/18
1.6K0
c#程序调试(如何使用debug调试)
1、在Winform界面的某个按钮点击事件中,编写代码 Debug.WriteLine(“123”); 在“输出”窗口中无输出。
全栈程序员站长
2022/08/01
2.2K0
DateTime在ExtJs中无法正确序列化的问题
这几天在学习ExtJs + Wcf的过程中,发现一个问题,如果Class中有成员的类型为DateTime,即使我们正常标识了[DataMember],序列化成JSON时,会生成一种特有的格式: ..."AddTime":"\/Date(1213718400000+0800)\/"}... 这种格式ExtJs并不识别,导致最终的组件,比如Grid上无法正常显示,解决办法有二个: 1.将Class的成员,手动改成String类型,不过个人不推荐这种方式,毕竟将数据类型都改了,相应的服务端很多地方都可能会做相
菩提树下的杨过
2018/01/22
2.7K0
详解C# 序列化和反序列化
今天我利用这篇文章给大家讲解一下 C# 中的序列化与反序列化。这两个概念我们在开发中经常用到,但是我们绝大部分只用到了其中的一部分,剩下的部分很多开发人员并不清楚,伸着可以说是不知道。因此我希望通过这篇文章能让各位对序列化和反序列化的知识有更进一步的掌握。废话不多说开始进入正题。
喵叔
2020/09/08
4.3K0
详解C# 序列化和反序列化
C#序列化与反序列化详解
序列化是通过将对象转换为字节流,从而存储对象或将对象传输到内存,数据库或文件的过程。主要用途是保存对象的状态,包括对象的数据,以便能够在需要是重建对象。反向过程称为 反序列化。
用户9127601
2021/11/01
1.1K0
C#实现Xml序列化与反序列化的方法
本文实例讲述了C#实现Xml序列化与反序列化的方法。分享给大家供大家参考。具体实现方法如下:
跟着阿笨一起玩NET
2022/05/10
1.3K0
C#多线程调试
这篇文章主要分享多线程部分调试技巧,在日常的开发工作中会经常遇到多线程调试的需要。在我们调试的过程中会出现断点的焦点在多个线程之间“反复横跳”根本无法集中跟踪某一个线程的操作链路。那么今天我们来看看如何调试操作。如果有其它需要的可以参考下面微软官方的文档地址。
JusterZhu
2022/12/07
7600
C#多线程调试
DataRow的序列化问题
在.net里,DataRow类型的对象是不支持序列化的,那么如果在一个需要序列化的对象中含有DataRow类型的字段该怎么办呢?呵呵,幸好Datatable是支持序列化的。因此,我们可以自定义序列化的
Java架构师必看
2021/03/22
7630
YARN调试过程中的常见问题
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar wordcount  /user/today/input  /user/today/output
瑾诺学长
2018/09/21
1.3K0
YARN调试过程中的常见问题
java 的序列化和反序列化的问题
引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序列化相关,通过分析情境出现的原因,使读者轻松牢记 Java 序列化中的一些高级认识。 回页首 文章结构 本文
xiangzhihong
2018/01/30
9090
java 的序列化和反序列化的问题
在c#中,如何序列化/反序列化一个字典对象?
.Net提供的各种序列化的类,通过使用这些类,. Net对象的序列化和反序列化变得很容易。但是字典对象的序列化并不是那么容易。为此,您必须创建一个能够序列化自身的特殊Dictionary类。在不同的业务案例中,序列化技术可能不同。
程序你好
2018/08/21
3.5K0
.NET 中的序列化 & 反序列化
序列化:将对象的状态信息及类型信息,转换为一种易于传输或存储形式(流,即字节序列)的过程。
雪飞鸿
2019/02/27
1.1K0
C#学习笔记 对象序列化
代码可以在我的Github主页上找到,地址是https://github.com/techstay/csharp-learning-note 。
乐百川
2022/05/05
5760

相似问题

C#中的XML序列化问题

114

调试Boost序列化分段故障问题

13

调试文件处理c#/.NET中的问题

22

C#如何调试反序列化异常?

13

C#序列化问题

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文