无法从程序集“System.Web”中加载类型“System.Web.HttpContext”。

11

系统.TypeLoadException:无法从程序集 'System.Web,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a' 加载类型 'System.Web.HttpContext'。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Xml.Linq;

public class Example : 
{
XDocument doc = XDocument.Load(System.Web.HttpContext.Current.Server.MapPath("~/example.xml"));
}

2
你有System.Web的引用吗? - Darren Kopp
你应该接受答案,这样人们就知道你现在已经解决了问题。 - Stephanie Page
2个回答

5

另一个问题是,免费的社区版本似乎仅适用于.NET Framework而不是.NET Core。


2
"System.Web.HttpContext"来自"System.Web"程序集,不是Net Core 3.1的解决方案。 - Kiquenet

4

当然,如果你不在一个Web应用程序中,就无法使用HttpContext.Current!

你可以检查System.Web.HttpContext.Current是否为空,它只适用于网页或Web服务。


那么,接下来的问题是如何在C#中返回相对路径而不使用Server.MapPath。 - Chris
由于MapPath相对于当前虚拟目录或网站,因此在非Web应用程序中使用它是没有意义的。如果您只想将相对路径更改为文件系统中任何位置的绝对路径,则Server.MapPath不是您所需的。 - Davide Piras

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接