在C#中将非可序列化对象转换为字符串

时间:2010-01-18 07:28:57

标签: c# xml string

我有一个未标记为User的对象([Serializable()])。

我需要将整个对象(包括子对象)转换为字符串。

实际需要将对象转换为未标记为[Serializable()]的第三方工具响应。

如何将整个C#对象转换为上述场景的字符串/ xml?

3 个答案:

答案 0 :(得分:4)

XmlSerializer不需要Serializable属性,但它只能序列化公共成员。

最诚挚的问候 Oliver Hanappi


编辑:您可以创建自己的适配器类,它实现IXmlSerializable接口并表示适配器在构造时获得的一个User对象。

答案 1 :(得分:1)

如果JSON满足您的需求,您可以尝试JsonExSerializer,因为它不需要任何属性来装饰目标对象。

答案 2 :(得分:0)

您可以使用反射来查找您感兴趣的所有成员,例如公共属性和/或私有字段,然后随时构建一个xml文档。

这样可以保持代码的通用性和自定义性。 :)

但是,请记住,反射在运行时可能是一个非常缓慢的过程。 :(