C# · 12月 25, 2021

c# – 序列化中传递了哪些数据? (二进制序列化)

在序列化(二进制序列化)中,正在传输哪些数据?分配给该对象属性的类(对象)或值的实例.

我想知道序列化过程中发生了什么?我的意思是一个对象被转换为它的目标文件或序列化中的任何东西.但是怎么样?在此过程中遵循了哪些步骤?

有人可以帮忙吗?

周杰伦…

解决方法 二进制序列化正在快速拍摄对象并将其序列化.这意味着所有未标记为NonSerializable的私有字段都将使用其值进行序列化.
对象层次结构中使用的所有对象必须作为Serializable.
您应该在事件上放置[field:NonSerializable]属性,因此事件处理程序也不会被序列化: http://bytes.com/groups/net-c/250944-nonserialized-attribute-events#post1013968

请记住,在反序列化对象时,必须在序列化它时在同一程序集中具有完全相同的对象(相同的含义相同的程序集信息).如果没有,您可以使用SerializationBinder类,以便您可以重置哪个流将被消毒的类型.