有没有办法在运行时使一个对象可序列化?我应该使用反射吗?
注意:该对象是外部库的一部分,因此我没有它的源代码。
答案 0 :(得分:3)
tl; dr - No。
虽然您可以使用TypeDescriptor
在运行时向任何内容添加属性,但在Serializable
属性的上下文中,由于BinaryFormatter
使用经典反射而不是TypeDesciptor
,因此它不会有帮助{1}}反思。
该属性背后的想法是可序列化类选择加入可序列化。有关此here的详细信息。
答案 1 :(得分:0)
根据结构的不同,您可能会使用不是选择加入的序列化程序,即它不需要目标类的任何属性,例如XmlSerializer或Json.NET。