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

时间:2014-12-13 23:25:26

标签: c# .net mono

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

这是我想要的:

[PresentInDotNET(3.5)] 

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

2 个答案:

答案 0 :(得分:1)

将它们拆分为单独的程序集,并根据.NET版本更改构成最终交付的程序集。您需要重建主程序集以引用正确的程序集(取决于FooMySystem还是System),但只要保持名称空间相同,就可以了。如果您甚至不想保持与旧版本的兼容性,则只需删除此程序集中的类即可。

或者,如果您正在重新创建的类/扩展方法没有意义(从某种意义上说,通过.NET为您提供它们而无法获得任何东西),只需将它们放在各自的命名空间中并接受您已经复制代码出现在较新的版本中。毕竟,只要发生这种情况,哪个组件完成工作并不重要。

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

答案 1 :(得分:0)

如何添加" // TODO"对这样的地方的评论? Visual Studio将在“任务”窗口中显示这些内容,您可以非常轻松地获取它们。