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

Sör*_*lau 4 c# asp.net c-preprocessor

我有一个在ASP.NET,SQL CLR和独立应用程序中工作的代码库,并根据某些命名空间(如System.Drawing)是否可用提供不同的功能.现在,我手动排除这些代码片段,但是将C#编译器放到它上面是有益的:

  • 我可能更懒,
  • 我可以使用同一个库.

我知道我可以使用#if指令来搜索定义,我可以手动定义类似的东西ASP_NET,但如果有办法自动执行此操作,那就更大了.

那么,我能检测到ASP.NET吗?或者,我可以检测某些引用的程序集是否可用?

Ode*_*ded 9

asp.net没有这样的预定义预处理器指令.

大多数人所做的是寻找当前HttpContext- 假设如果它为null,则这不是Web上下文.

另一种选择是测试HttpRuntime.AppDomainAppIdnull,类似的假设.

其他类似选择:

System.Web.Hosting.HostingEnvironment.IsHosted == true
System.Web.HttpRuntime.Cache != null
Run Code Online (Sandbox Code Playgroud)

并且您可以检查web.config文件是否存在.