从托管类库中,我想知道当前正在执行的应用程序是否是ASP.NET Web应用程序(Web表单或MVC).
我已经看到了不同的方法,例如通过检查以下之一:
System.Web.Hosting.HostingEnvironment.IsHosted == true
System.Web.HttpContext.Current != null
System.Web.HttpRuntime.AppDomainAppId != null
System.Web.HttpRuntime.Cache != null
web.config
文件(注意:我认为这不可靠)问题是我应该使用哪种方法?它们中的一些是无效的(即,即使在Windows应用程序中运行它们可能会返回true)还是它们都是相同的?
更新/澄清(对不起,如果我的问题不够明确):
注意:我知道我可以实现不同的解决方案(例如,请参阅下面的评论或Tomas Lycken的答案),但这不是这个问题的重点.类库已经存在,我想尽可能少地改变代码!
我必须在这里质疑你的目标:为什么图书馆应该知道它正在运行什么样的应用程序?
对我来说,听起来您需要将库的相关部分分成两部分 - 一部分用于 Web 应用程序,另一部分用于 winforms 应用程序。(可能还有第三部分,包含两种类型的应用程序都可以使用的所有内容......)
归档时间: |
|
查看次数: |
2906 次 |
最近记录: |