如何在运行库中判断被asp.net还是本机程序调用

purexu 2009-03-29 03:32:22
现在在为项目写一个通用库~
考虑到通用性~
想让这个库能应用于 asp.net 和本机程序环境~
由于有些功能不同环境处理方法不同~
所以想问一下如何判断库被哪个环境所调用~
就像在设计组件时用 DesignMode 来判断是否处于 VS 的设计环境中一样~
谢谢~~
...全文
140 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
purexu 2009-03-30
  • 打赏
  • 举报
回复
测试通过~~
感谢 Dobzhansky~~
结帖~~~
purexu 2009-03-30
  • 打赏
  • 举报
回复
谢谢 Dobzhansky~~~~
就是因为 HttpContext 必然要引用 system.web.dll
所以一直没采用~
您的方法俺先去测试一下~~
Dobzhansky 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 purexu 的回复:]
DNT 中是通过 HttpContext.Current != null 来判断处于 web 运行环境中~
不知大家有没有其他的判断方式呢~~
[/Quote]

要使用 HttpContext 必然要引用 system.web.dll,
通用类库是不能引用 system.web.dll 和 system.windows.forms.dll 的,
不然有背设计初衷,

判断的方式多种多样, 我们暂时使用以下方式来分别是 asp.net 还是 winform/win console 程序

// 在 IIS5/IIS6 中 Asp.net 程序是由非托管程序启动的
// 服务/COM interop 等类型客户再探讨
Assembly assembly = Assembly.GetEntryAssembly();
if (null == assembly)
_hostType = HostType.BS;
else
_hostType = HostType.CS;
purexu 2009-03-30
  • 打赏
  • 举报
回复
DNT 中是通过 HttpContext.Current != null 来判断处于 web 运行环境中~
不知大家有没有其他的判断方式呢~~
jackli32 2009-03-29
  • 打赏
  • 举报
回复
谢谢啊!但是好像跟考试环境还是有点不同。呵呵 ,你这里面的题目准确不。
purexu 2009-03-29
  • 打赏
  • 举报
回复
反射?
通用库都不知要被谁调用~要去反射谁??


可能您还没明白俺的意思~
比例通用库中有一个获取相对文件绝对路径的方法~
本地程序可以用程序运行目录与相对文件路径合并~
而在 asp.net 中程序运行目录并不是网站程序的目录~一般用 Server.MapPath()
俺就是想弄一个机制~
知道在什么环境中调用哪种处理方式~
zzxap 2009-03-29
  • 打赏
  • 举报
回复
用反射机制

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧