【发布时间】:2021-05-20 10:06:27
【问题描述】:
我正在使用 XSD.exe 将相当复杂的 XML 架构(XSD 文件)转换为 C# 类。然后我使用 XmlSerializer 将 XML 读入内存并处理数据。
将来,XSD 会发生变化。所以会有新版本。我将不得不使用 XSD.exe 创建一个新的 cs 文件。但我还是想支持旧版本的 XML 文件。
解决此问题并同时支持新旧版本的 XML 文件的最佳方法是什么?显然,XSD.exe 创建的类将具有相同的名称。所以我真的不能只生成另一个与 XSD.exe 并行的 cs 文件。
欢迎任何想法。提前致谢!
【问题讨论】:
-
希望创建 xsd 的人只添加新功能而不更改现有功能。然后代码将同时处理新旧数据。只要你有一个数据库,你就应该包含一个版本号,这样你就可以编写读取版本号并处理差异的代码。