首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法添加对System.Web.Hosting的引用

无法添加对System.Web.Hosting的引用
EN

Stack Overflow用户
提问于 2014-10-07 13:04:05
回答 5查看 13.2K关注 0票数 16

我正在将一个web应用程序从VB迁移到C#。我还升级到VS2013中的更新3。Hosting类有更改吗?我在使用Hosting.HostingEnvironment.MapPath时出错,甚至无法添加对System.Web.Hosting的引用,因为它在哪里都找不到。当我尝试在添加引用时搜索程序集时,使用整个命名空间(即System.Web.Hosting ),它将不返回结果。

我在类中有using语句,它不是灰色的,这意味着它被用于某些东西,但是代码不喜欢Hosting中的Hosting.HostingEnvironment,因为它是红色的。我甚至没有在intellisense中获得Hosting类,而且该项目有一个对System.Web的引用

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-10-07 13:10:57

没有Hosting类。相反,您需要HostingEnvironment类:

代码语言:javascript
复制
HostingEnvironment.MapPath("~/Hello.txt");

HostingEnvironment的完整类型是System.Web.Hosting.HostingEnvironment,因此您需要在文件中使用using System.Web.Hosting;子句,或者使用全名。

然而,更重要的是,如果您正在开发一个web应用程序,您很可能无论如何都不想使用HostingEnvironment。您应该始终有一个例如HttpContextPage / Control的实例,这使您可以访问Server.MapPath,这应该是首选的。

至于引用,System.Web.Hosting名称空间位于System.Web.dll中,所以只需确保您有对该引用的引用,那么您应该会很好。

由于您是从VB迁移的,所以我假设这种冲突是由VB对名称空间的不同处理引起的。在C#中,您不能这样做:

代码语言:javascript
复制
using System.Web;

Hosting.HostingEnvironment.DoWhatever();

在使用命名空间时,要么使用包含名称空间的完整类型名称,要么对确切的命名空间和类型使用using。把这两者结合起来不太管用。

票数 9
EN

Stack Overflow用户

发布于 2016-07-06 20:51:11

我也有过同样的问题,不是什么张贴的东西。我在一个单独的(模型)项目中查看库中的代码。在我使用的库项目中,没有引用System.Web。

棘手的部分是System.Web.Http被引用了,所以找到了System.Web命名空间,所以using System.Web;语句编译得很好。

省去麻烦和心痛,始终按下解决方案资源管理器中的“同步与活动文档”按钮,如本答案所示。https://stackoverflow.com/a/30517179/149884

票数 3
EN

Stack Overflow用户

发布于 2014-10-07 13:09:57

你试过用Server.MapPath在System.Web吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26236721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档