【发布时间】:2015-02-24 10:52:42
【问题描述】:
我有一个混合使用 ASP.NET webforms 和 MVC 5 开发的 Web 应用程序。我需要构建不同版本的应用程序,比如 Basic、Deluxe 和 Premium,每个版本都有不同的功能。 我知道预处理器指令是 C# 为条件构建和创建应用程序的不同版本提供的东西。
在我的情况下,我的类不应该包含方法、命名空间或属性,具体取决于构建的应用程序版本,而且某些 dll 不应该包含在应用程序版本中,同样的理论适用于前面结束代码以及 MVC 代码。
任何关于开发这个的好的方向都将不胜感激。
【问题讨论】:
-
您确实已经回答了自己的问题 - 只需使用
#define、#if和#endif来切换部分代码。但如果这是一个 web 应用程序并且您的客户不会接触到二进制文件,我认为使用运行时评估的if来更好地实现功能切换。 -
您将托管应用程序还是您的客户?如果您自己托管它们,那么您可以在 web.config 文件中启用基于功能的 appSettings 值...
-
用
#if打开/关闭部分代码更好还是在需要时只使用if? -
@RichardEverett,客户将托管应用程序
标签: c# .net preprocessor-directive