加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 确定应用程序是WinForms还是WebForms

发布时间:2020-12-15 18:32:14 所属栏目:百科 来源:网络整理
导读:有没有办法确定在运行时运行的应用程序是WinForms还是Web? [编辑] 如果我在类库中引用System.Web和System.Windows.Forms,实际上是否存在问题? [摘要](到目前为止) 到目前为止我学到了什么: 如果在异步线程中检查,则HttpContext.Current为null,因此无法在
有没有办法确定在运行时运行的应用程序是WinForms还是Web?

[编辑]

如果我在类库中引用System.Web和System.Windows.Forms,实际上是否存在问题?

[摘要](到目前为止)

到目前为止我学到了什么:

>如果在异步线程中检查,则HttpContext.Current为null,因此无法在辅助方法中可靠地使用它. HttpRuntime.Cache并没有真正帮助,因为我根本不寻找缓存的上下文(或者我在这里错过了什么?).
>另一方面,System.Reflection.Assembly.GetEntryAssembly()似乎在Web应用程序中返回null,在WinForms中返回非null.这应该被视为理所当然吗?应该有更多这样的“黑客”,那么使用哪一个?
根据this thread,在辅助库中引用System.Web和System.Windows.Forms都应该没问题.

解决方法

在编辑中,指定您的帮助程序类处于单独的程序集中.如果你想避免引用,你可以控制你的app.config文件,你可以放一个
<add key="typeOfSystem" value="Forms|Web"/>

在您的项目中并使用它访问它

ConfigurationManager.AppSettings["typeOfSystem"]

使用ConfigurationManager及其属性AppSettings.不要忘记在项目中添加对System.Configuration的引用.请注意,您将获得托管应用程序的AppSettings.通过这样做,您需要在父应用程序的app.config中添加一个键,或者如果未指定它,则输出一些错误或警告.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读