找不到的HttpContext在.NET中3.5和Visual Studio 2008
我用代码here,我得到以下错误: 不能使用HttpContext.Current.Server.MapPath()
找不到的HttpContext在.NET中3.5和Visual Studio 2008
在Visual Studio 2008中请问ContextMenuEntry“解决”帮你当你缺少参考?
我已经发现在我的IDE中HttpContext
不是System.Web
的成员。 根据帮助>信息我正在使用.NET 3.5 SP1。
我该如何运行?
你在这种情况下通常会如何反应?你在寻找什么东西在msdn.com?
我会在这种情况下做的是看在MSDN(或谷歌)HttpContext
。我这样做,它说它在System.Web
。所以确保你的项目有一个System.Web
的参考。
...然后它似乎工作:
你摇滚!感谢屏幕演员;) 我认为键入“使用System.Web”就足够了。也许我不得不通过这个菜单来设置使用指令。或者IDE无法识别复制的代码。 不知何故,因为我的档案中没有任何变化;) – OneWorld 2010-08-28 14:19:01
@user:如果Timwi帮助你,一定要将其标记为答案。请注意,程序集引用和使用语句是不同的动物。程序集引用决定了您的应用程序可以使用哪些代码。使用语句的名称空间仅提供便捷的简写,用于引用不具有完整名称空间限定名称的类。你会发现添加引用只会改变你的csproj/vbproj文件。 – kbrimington 2010-08-28 14:35:55
@ user433718:除了上述的@kbrimington之外,还要指出程序集的名称并不总是与名称空间名称相同(这使得它非常令人困惑)。例如,很多WPF的东西都在组件* PresentationCore *中,但是在名称空间* System.Windows.Media *中。 – Timwi 2010-08-28 14:49:39
尝试将引用您的项目添加到System.Web
。
HttpContext
是System.Web
的成员。
http://msdn.microsoft.com/en-us/library/system.web.httpcontext.aspx
我已经有“使用System.Web程序” 但是,当我尝试键入“使用System.Web.HttpContext”它说:“HttpContext的”未命名空间“System.Web程序” 发现我也在代码中尝试了“System.Web.HttpContext.Current.Server.MapPath()”。此时Visual Studio又说:“不在命名空间中......” – OneWorld 2010-08-28 13:58:47
@ user433718:你不能在'using'语句中放置'HttpContext',因为它是一个类,而不是命名空间。 – Guffa 2010-08-28 14:11:52
如果未引用DLL,则IDE无法自动检测命名空间。如果你想能够做到这一点,即使没有引用的DLL,我不认为这是可能的。 – 2010-08-28 14:52:46
你可以看一下在documentation的HttpContext类,它会告诉你,这是在System.Web
命名空间,在System.Web.dll
库。
因此,要使用它,您需要参考System.Web.dll
库,并且您需要using System.Web;
语句或使用完全限定名称System.Web.HttpContext.Current.Server.MapPath
。
但是,您确定要使用MapPath
方法吗?该方法获取对文件的Web引用的物理路径。如果CSV文件的路径是Web引用,例如"/data/items.csv"
,那么您想使用MapPath
方法,但是如果您有一个像"C:\mydata\items.csv"
这样的物理路径,那么您不希望将其转换。
另外,MapPath
仅适用于实际位于具有HTTP上下文的Web应用程序中。
Timwi说得对,但为了完整。不,VS没有内置的'Solve'功能,但是这个功能已经被一些附加组件部分添加了。例如,Resharper将添加选项以添加引用并在需要时使用 - 但它必须在解决方案之前被引用,因此它不能解决初始查找问题。
这是一个不使用正确框架的简单情况,我的意思是完整的胖版本,而不是默认的“轻”版本。
右键单击该项目,然后点击属性,并确保完整版的最新架构的选择,即“.NET框架4' ,而不是” .NET框架4客户端配置文件”
谢谢大家快和高质量的答案,特别是Timwi和Guffa! – OneWorld 2010-08-28 17:59:55
我现在总是使用JetBrains中的ReSharper来“解决”这些问题(David Culp回答)。使用此插件,您可以添加到Eclipse中常见的Visual Studio功能。 – OneWorld 2013-01-22 19:45:32