序列化时修改数据

时间:2009-11-04 01:10:29

标签: c# xml-serialization

我的应用程序中有文件和文件夹的层次结构。应用程序使用绝对路径,它存储在FileNode.Items字符串列表中。

当我必须保存我的项目时,我用XML序列化FileNode类。但是,我需要将绝对路径转换为亲属(如果可能),然后序列化。

所以,我的问题是:有没有任何解决方案可以动态执行(即属性附近的任何标志,对其执行任何操作)或者我需要在每次序列化之前和每次反序列化后手动转换路径?

非常感谢您的回答

2 个答案:

答案 0 :(得分:2)

您可以在FileNode类上创建一个返回相对路径的单独属性,并将[XmlIgnore]属性添加到原始属性以防止它被序列化。

或者,您可以实现IXmlSerializable来自行控制序列化。

答案 1 :(得分:1)

不,没有自动的方法。

您可以实施ISerializable或获取XML序列化对象,并使您的路径相对于XmlDocument