2010-01-18 42 views
1

我有一个对象(User),它没有标记为[Serializable()]将不可序列化的对象转换为C中的字符串#

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

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

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

回答

4

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

问候
奥利弗Hanappi


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

+0

我怎样才能得到非公开成员的字符串/ xml第三方工具有一套方法,我可以从中获取值我需要从每个方法获取值或否则非公开成员值 – Prasad 2010-01-18 07:38:32

+0

您可以在适配器类上实现IXmlSerializable接口(请参阅编辑)。 – 2010-01-18 07:44:08

1

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

0

您可以使用反射来查找您感兴趣的所有成员,例如,公共属性和/或私人领域,然后在你走的时候构造一个xml文档。

这样可以保持代码的通用性和自定义,只要你喜欢。 :)

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