我有一个在 ASP.NET、SQL CLR 和独立应用程序中工作的代码库,并根据某些命名空间(例如 System.Drawing
)是否可用提供不同的功能或不。现在,我手动排除了这些代码片段,但使用 C# 编译器会很有帮助:
- 我可以再懒一点,
- 我可以使用同一个库。
我知道我可以使用 #if
directives搜索定义,我可以手动定义类似 ASP_NET
的内容,但如果有一种方法可以自动执行此操作,那就更好了。
那么,我可以检测 ASP.NET 吗?或者,我可以检测某些引用的程序集是否可用吗?
最佳答案
asp.net 没有这样的预定义预处理器指令。
大多数人所做的是寻找当前的 HttpContext
- 假设如果它为 null,则这不是 Web 上下文。
另一种选择是测试 HttpRuntime.AppDomainAppId
对于 null,类似的假设。
其他类似选项:
System.Web.Hosting.HostingEnvironment.IsHosted == true
System.Web.HttpRuntime.Cache != null
并且您可以检查 web.config
文件是否存在。
关于c# - 是否有检测 ASP.NET 的指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062706/