使对象在运行时可序列化

本文关键字:序列化 运行时 对象 | 更新日期: 2023-09-27 18:30:31

有没有办法在运行时使对象可序列化?我应该使用反射吗?

注意:该对象是外部库的一部分,所以我没有它的源代码。

使对象在运行时可序列化

tl;dr - No.

虽然您可以使用 TypeDescriptor 在运行时向任何内容添加属性,但在 Serializable 属性的上下文中,它无济于事,因为BinaryFormatter使用经典反射而不是TypeDesciptor反射。

该属性背后的想法是让可序列化类选择加入可序列化。有关此内容的更多详细信息,请单击此处。

根据结构的不同,您可以使用未选择加入的序列化程序,即它不需要目标类上的任何属性,例如 XmlSerializer 或 Json.NET。