使一个对象在运行时可序列化

4
有没有方法在运行时使一个对象可序列化?我应该使用反射吗?
注意:这个对象是外部库的一部分,所以我没有它的源代码。

请解释一下您所说的“使其可序列化”的含义。您到底想做什么? - CodeCaster
将[Serializable]属性添加到类中 - Rick
1
现在这是一个你可以搜索的具体问题。请参见C#中是否可以动态添加属性? - CodeCaster
2个回答

4

简而言之,不行。

尽管您可以在运行时使用 TypeDescriptor 为任何内容添加属性,但在 Serializable 属性的上下文中,它并没有帮助,因为 BinaryFormatter 使用的是经典反射而不是 TypeDesciptor 反射。

该属性背后的想法是让可序列化的类选择是否进行序列化。有关更多详细信息,请参见此处


0
根据结构的不同,您可以使用一个非选择性的序列化器,即它不需要目标类上的任何属性,例如XmlSerializerJson.NET

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接