c# - 是否有检测 ASP.NET 的指令?

标签 c# asp.net c-preprocessor

我有一个在 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/

相关文章:

c# - WPF 将数据从数据网格绑定(bind)到文本框

c# - 自定义 ConfigurationSection 中无法识别的元素异常

asp.net - ASP Ajax 日历扩展器和显示时间

c# - 如何使用 C# lang 在 asp .net 中将 gridview 数据转换为 excel 表

asp.net - .gitignore 用于 asp.net razor 项目

c - ##__VA_ARGS__ 在 C99 下当零参数时不吞下逗号

c - 使用宏初始化特定数组元素

c# - 每次按下按钮时,如何从字符串的前面连续移动n个字符到末尾?

c# - C++/CLI 包装器只能在 x86 机器上正常工作,我需要 x64 机器

c - 如何用多语句定义一个c宏