Dll 在单类库中处理多个标准

Dll 在单类库中处理多个标准,dll,specifications,class-library,Dll,Specifications,Class Library,我目前正在从事一个名为ADIF的项目,该项目将支持多个文件编写规范(假设您必须支持XML 1.0、XML 2.0、XML 3.0等)。目前有两个标准(版本1.0和版本2.2.2),它们都在商业上使用,并且仍然大量使用 规范版本2.2.2包含了版本1.0的大部分内容,但有一些细微的差异,排除了一些继承和其他OOP工具 您将如何组织项目以支持旧版本,同时继续跟上新标准 单个类库中的名称空间(Standard.Version1、Standard.Version222、Standard.Version

我目前正在从事一个名为ADIF的项目,该项目将支持多个文件编写规范(假设您必须支持XML 1.0、XML 2.0、XML 3.0等)。目前有两个标准(版本1.0和版本2.2.2),它们都在商业上使用,并且仍然大量使用

规范版本2.2.2包含了版本1.0的大部分内容,但有一些细微的差异,排除了一些继承和其他OOP工具

您将如何组织项目以支持旧版本,同时继续跟上新标准

  • 单个类库中的名称空间(Standard.Version1、Standard.Version222、Standard.Version223(下一个版本?),等等)?看起来很马虎
  • 在同一解决方案中为每一个单独的类库(Version222.dll、Version223.dll等)?似乎太过分了
  • 等等
我确实打算实现一些代码,这些代码将从一个版本转换为另一个版本

基本上,我在寻找一些关于如何最好地组织这类项目的建议


您说过没有一个好的固有层次结构可以实现吗

如果是这样,我建议您遵循库的名称空间技术,它可以使用dll中可能的任何公共性来减少您自己的工作负载。拥有两个api将使您更容易进行测试,并且可以很好地处理版本之间的差异问题

i、 e.您的2.2.2版api将只接受2.2.2版的对象,以防止库中出现问题。祝你好运,无论你实施什么:)

规范版本2.2.2包含了版本1.0的大部分内容,但有一些细微的差异,排除了一些继承和其他OOP工具

对象组合对于OOP来说可能比继承更强大,因为继承被过度使用了

您可以找到哪些方法将问题分解为更简单的子系统