Xml序列化

时间:2012-02-02 14:49:16

标签: c# xmlserializer

有没有人知道在使用XmlSerializer时是否有使用C#属性的属性来映射到XML节点的替代方法?

我的问题是我有一个名为Article的对象,有一些属性(例如ID,Title,Body),我不想直接向它添加属性(在其他地方使用等等)。 .so我创建了一个部分类并重新定义了属性并在那里添加了属性,但很快就发现在部分类中不能有重复的属性。

所以我想知道是否有人知道我可以用任何方式映射属性(例如,以类似于n-hibernate的方式)。

我很感激任何帮助。

2 个答案:

答案 0 :(得分:4)

有一个constructor of the XmlSerializer类,允许您传递XmlAttributeOverrides,从而在运行时改变行为。

来自文档的引用:

  

覆盖参数可用于控制字段和方式   属性以XML编码。这些设置会覆盖任何属性   已存在于对象上。这在源时很有用   代码无法修改或需要多个编码   相同的课程。

答案 1 :(得分:0)

您可以直接实施IXmlSerializable。它需要更多代码,但您可以完全控制而无需属性。