处理旧应用程序中的新库功能

时间:2009-05-14 21:43:05

标签: .net backwards-compatibility

我们正在开发一个新的库版本,其中包含其他应用程序使用的一些UI控件。其中一些控件具有旧应用程序不了解的新功能。默认情况下,我们会停用新功能,但我们希望启用这些功能的特定应用。这些应用可能存在于同一台机器上。

您如何推荐实施此功能?

更新 我提出的最佳解决方案是使用Process.GetCurrentProcess()并使用类似proc.MainModule.FileVersionInfo.InternalName的内容来查找指定覆盖值的注册表项。也许还要查看版本号以检查它是否太旧而无法了解新功能。这种方法有问题吗?

更新 添加的功能封装在控件中,只是它们在某些情况下有意义,而在其他环境中则没有。

1 个答案:

答案 0 :(得分:0)

我认为你不能。您无法将接口更改为旧应用程序,也无法接收或返回任何新数据。因此,新控件必须像旧控件一样对旧应用程序进行操作。现在,如果您在控件中完全封装的新控件中有行为(如固定或最小化或类似的东西),那么这些功能可能适用于您的旧应用程序。您可以处理使用新控件的旧应用程序的坚果和机器人,假设它们具有强名称,并使用Publisher Policies在GAC中。