有没有人知道在使用XmlSerializer时是否有使用C#属性的属性来映射到XML节点的替代方法?
我的问题是我有一个名为Article
的对象,有一些属性(例如ID,Title,Body),我不想直接向它添加属性(在其他地方使用等等)。 .so我创建了一个部分类并重新定义了属性并在那里添加了属性,但很快就发现在部分类中不能有重复的属性。
所以我想知道是否有人知道我可以用任何方式映射属性(例如,以类似于n-hibernate的方式)。
我很感激任何帮助。
答案 0 :(得分:4)
有一个constructor of the XmlSerializer类,允许您传递XmlAttributeOverrides,从而在运行时改变行为。
来自文档的引用:
覆盖参数可用于控制字段和方式 属性以XML编码。这些设置会覆盖任何属性 已存在于对象上。这在源时很有用 代码无法修改或需要多个编码 相同的课程。
答案 1 :(得分:0)
您可以直接实施IXmlSerializable。它需要更多代码,但您可以完全控制而无需属性。