我正在将Web应用程序从VB迁移到C#.我还在VS2013中升级到了Update 3.Hosting
班级有变化吗?我正在使用错误Hosting.HostingEnvironment.MapPath
,我甚至无法添加引用,System.Web.Hosting
因为它无处可寻.当我尝试在添加引用时搜索程序集时,使用整个命名空间,即System.Web.Hosting
它不返回任何结果.
我在类中使用了using语句,并且它没有变灰,这意味着它被用于某些东西,但是代码不喜欢它Hosting
,Hosting.HostingEnvironment
因为它是眩目的红色.我甚至没有Hosting
在intellisense中获得该类,该项目有一个参考System.Web
没有Hosting
课.相反,你想要这个HostingEnvironment
类:
HostingEnvironment.MapPath("~/Hello.txt");
Run Code Online (Sandbox Code Playgroud)
完整类型HostingEnvironment
是System.Web.Hosting.HostingEnvironment
,所以你需要using System.Web.Hosting;
在文件中有一个子句,或使用全名.
但更重要的是,如果您正在制作Web应用程序,那么您很可能不想使用它HostingEnvironment
.你应该总是有一个eg HttpContext
或Page
/ 的实例Control
,它可以让你访问Server.MapPath
,这应该是首选.
至于引用,System.Web.Hosting
命名空间存在System.Web.dll
,所以只要确保你有一个参考,你应该没事.
由于您是从VB迁移它,我认为冲突是由VB对命名空间的不同处理引起的.在C#中,你不能只这样做:
using System.Web;
Hosting.HostingEnvironment.DoWhatever();
Run Code Online (Sandbox Code Playgroud)
使用命名空间时,要么使用包含命名空间的完整类型名称,要么在确切的命名空间和类型上使用using.将两者结合起来并不是很有效.