如何处理更高版本的框架包含的代码

本文关键字:版本 包含 代码 框架 何处理 处理 高版本 | 更新日期: 2023-09-27 18:34:07

我必须在Unity项目中使用旧版本的Mono。我发现自己重新创建了 .NET 更高版本中存在的一些类和扩展方法。我应该用一个属性来标记它们,以便在以后很容易将它们取出,只是等待不可避免的错误,然后删除重复的代码,或者采取一些我还不熟悉的其他方法?如果属性路由是要走的路,是否已经为这种事情创建了适当的属性?

这是我想要的:

[PresentInDotNET(3.5)] 

我填写版本,并在框架处于该级别或更高级别时收到警报。

如何处理更高版本的框架包含的代码

将它们拆分为单独的程序集,并根据 .NET 版本更改构成最终交付的程序集集。您需要重新生成主程序集以引用正确的程序集(取决于Foo是在MySystem还是System中(,但只要保持命名空间相同,仅此而已。如果您甚至对保持与旧版本的兼容性不感兴趣,则只需在类可用时从此程序集中删除这些类即可。

或者,如果要重新创建的类/扩展方法不感兴趣(从某种意义上说,让 .NET 为您提供它们没有任何好处(,只需将它们放在单独的命名空间中,并接受您正在复制新版本中已存在的代码。毕竟,哪个组装完成工作并不重要,只要它发生。

无论你做什么,尽量避免走#ifdef、运行时发现和其他条件代码的路线,因为这更难维护。

为这样的地方添加"//TODO"注释怎么样? Visual Studio将在"任务"窗口中显示这些内容,您可以非常轻松地获取它们。