发现一个关于序列化的异常
提示的异常如下:
程序集“WinDraw, Version=1.2.2.0, Culture=neutral, PublicKeyToken=null”中的类型“WinDraw.DrawView”未标记为可序列化。
展开的错误信息:
在 System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
在 System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
在 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
在 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph)
在 WinDraw.Core.CommonFunction.CloneObj[T](T RealObject) 位置 E:\分局级解决方案\源码\BranchScene\WinDraw\Core\CommonFunction.cs:行号 680
在 WinDraw.DrawView.EnterRecognize() 位置 E:\分局级解决方案\源码\BranchScene\WinDraw\DrawViewFunc.cs:行号 6374
在 WinDraw.DrawView.set_IsRecognitionCurve(Boolean value) 位置 E:\分局级解决方案\源码\BranchScene\WinDraw\DrawViewField.cs:行号 582
在 WinDraw.MenuLib.RecogAdapter.Method_Slot(Object sender, EventArgs e) 位置 E:\分局级解决方案\源码\BranchScene\WinDraw\MenuLib\RecogAdapter.cs:行号 44
在 DevComponents.DotNetBar.BaseItem.RaiseClick(eEventSource source)
在 DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.PopupItem.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.ButtonItem.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.ItemContainer.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.ItemControl.OnMouseUp(MouseEventArgs e)
在 DevComponents.DotNetBar.RibbonBar.OnMouseUp(MouseEventArgs e)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
在 System.Windows.Forms.ContainerControl.WndProc(Message& m)
在 DevComponents.DotNetBar.ItemControl.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
我仔细查看了一边代码,实在找不到 到底是哪儿 缺少序列化标记了,
另外 DrawView 是个 自定义控件.
程序集“WinDraw, Version=1.2.2.0, Culture=neutral, PublicKeyToken=null”中的类型“WinDraw.DrawView”未标记为可序列化。
展开的错误信息:
在 System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
在 System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
在 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
在 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph)
在 WinDraw.Core.CommonFunction.CloneObj[T](T RealObject) 位置 E:\分局级解决方案\源码\BranchScene\WinDraw\Core\CommonFunction.cs:行号 680
在 WinDraw.DrawView.EnterRecognize() 位置 E:\分局级解决方案\源码\BranchScene\WinDraw\DrawViewFunc.cs:行号 6374
在 WinDraw.DrawView.set_IsRecognitionCurve(Boolean value) 位置 E:\分局级解决方案\源码\BranchScene\WinDraw\DrawViewField.cs:行号 582
在 WinDraw.MenuLib.RecogAdapter.Method_Slot(Object sender, EventArgs e) 位置 E:\分局级解决方案\源码\BranchScene\WinDraw\MenuLib\RecogAdapter.cs:行号 44
在 DevComponents.DotNetBar.BaseItem.RaiseClick(eEventSource source)
在 DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.PopupItem.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.ButtonItem.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.ItemContainer.InternalMouseUp(MouseEventArgs objArg)
在 DevComponents.DotNetBar.ItemControl.OnMouseUp(MouseEventArgs e)
在 DevComponents.DotNetBar.RibbonBar.OnMouseUp(MouseEventArgs e)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
在 System.Windows.Forms.ContainerControl.WndProc(Message& m)
在 DevComponents.DotNetBar.ItemControl.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
我仔细查看了一边代码,实在找不到 到底是哪儿 缺少序列化标记了,
另外 DrawView 是个 自定义控件.
...全文
相关推荐
java 中序列化NotSerializableException问题解决办法
NotSerializableException 是 Java 中的一个异常,它发生在尝试序列化一个不implement Serializable 接口的对象时。
Discovery-Module:用于反序列化发现范围的模块
Discovery-Module"是一个专为此目的设计的模块,主要用于在反序列化过程中发现和处理特定的范围。在这个模块中,开发者可以更有效地控制和管理反序列化的流程,以确保数据的安全性和正确性。
反序列化失败异常(解决方案).md
具体到示例代码,当尝试使用json.loads()方法反序列化一个格式错误的JSON字符串时,会抛出JSONDecodeError异常。通过捕获这个异常,可以有效地处理错误,并给出相应的错误信息。
RPC调用msgpack序列化问题分析.docx
MsgPack 的优点在于它可以将小整数编码成单个字节,短字符串也只需一个额外的字节来存储。RPC 调用 msgpack 序列化问题分析在业务异常中,我们发现了 RPC 调用异常。
反序列化失败异常解决办法.md
在进行反序列化时,应当使用try-catch结构来捕获可能出现的异常,并通过打印堆栈信息来辅助定位问题。异常处理能够帮助开发者在开发过程中及时发现并修复错误。4.


