我应该如何为不同版本的 .NET 编写具有独特部分的代码
-
01-07-2019 - |
题
我的源代码需要支持 .NET 版本 1.1 和 2.0 ...我如何测试不同的版本以及处理这种情况的最佳方法是什么。
我想知道是否应该将两部分代码内联,放在单独的类、方法等中。你怎么认为?
解决方案
如果您想做这样的事情,您将需要使用预处理器命令和条件编译符号。
我将使用明确指示您所针对的 .NET 版本(例如 NET11 和 NET20)的符号,然后将相关代码包装如下:
#if NET11
// .NET 1.1 code
#elif NET20
// .NET 2.0 code
#endif
这样做的原因而不是简单的 if/else 是为了防止有人忘记定义符号而提供额外的保护层。
话虽如此,您应该真正深入了解您想要/需要这样做的原因的核心。
其他提示
我会问为什么你必须维护两个代码库的问题,如果有机会的话我会选择一个并使用它。
尝试使两个代码库与更改数量和更改类型保持同步将非常复杂,并且为任一版本构建的构建过程也将非常复杂。
我们遇到了这个问题,最终得到了一个“兼容层”,我们在其中为 .NET v1.1 和 v2.0 实现了一组接口和实用程序代码。
然后我们的安装人员为正确的版本制定了正确的代码。我们用了 国家信息安全局 (免费!),并且它们具有您可以调用以确定 .NET 版本的函数。
不隶属于 StackOverflow