我们的系统将 XML 字符串存储在数据库中。我最近不得不更改一个类的属性,现在当一个 XML 字符串被反序列化时,它会抛出一个异常。处理此更改的最佳方法是什么?使用 XPATH 或 LINQ 在应用程序代码中查找节点,或更改 sql 数据库中的 xml 字符串(即进行批量更新)?
最佳答案
您可能想要查看编写自定义 XML 反序列化程序(即实现 IXmlSerializable,请参阅 here)来处理 XML 中的更改。如果您已投入大量时间来制作 XML 序列化属性,您可能想看看另一种方法。
考虑批量升级您的 XML,或弃用(而不是删除)类内的属性并将旧行为映射到新行为。
从长远来看,您会想出一个策略来在未来处理这个问题,因为您很可能会在添加/更改系统功能时继续更改架构/对象定义。
关于c# - 处理 XML 更改的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224263/