Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类库中不存在HttpContext.GetGlobalResourceObject_C#_Asp.net_Asp.net Mvc_Resources_Httpcontext - Fatal编程技术网

C# 类库中不存在HttpContext.GetGlobalResourceObject

C# 类库中不存在HttpContext.GetGlobalResourceObject,c#,asp.net,asp.net-mvc,resources,httpcontext,C#,Asp.net,Asp.net Mvc,Resources,Httpcontext,我正在为我未来的ASP.Net项目编写各种类库(工具和帮助程序) 现在,我的解决方案没有web项目,但它不应该是一个问题。 我在项目中添加了对System.Web的引用,现在我可以在代码中访问HttpContext 下面是假定获取应用程序全局资源的资源管理器类的代码: using System; using System.Collections.Generic; using System.Text; using System.Web; namespace ResourceManager {

我正在为我未来的ASP.Net项目编写各种类库(工具和帮助程序)

现在,我的解决方案没有web项目,但它不应该是一个问题。 我在项目中添加了对System.Web的引用,现在我可以在代码中访问HttpContext

下面是假定获取应用程序全局资源的资源管理器类的代码:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;

namespace ResourceManager
{
    public class ResourceManager : IResourceManager
    {
        HttpContext context;

        public ResourceManager(HttpContext ctx)
        {
            context = ctx;
        }

        public string GetError(string key)
        {
            return context.GetGlobalResourceObject("Errors", key).ToString();
        }

        //And so on........
    }
}
但不幸的是,Visual Studiointellisense无法找到GetGlobalResourceObject

点击F12,我可以在HttpContext类中看到这个静态函数

运行生成后,我收到以下错误消息:

无法使用实例引用访问成员“HttpContext.GetGlobalResourceObject(string,string)”;改为使用类型名称限定它

这是一种奇怪的行为,对我来说很有趣,为什么会这样


感谢您的帮助

这未经测试,但从错误消息中,我认为用法应如下所示

实际上,您只需使用静态的
HttpContext
,而不是创建它的实例

using System.Web;

namespace ResourceManager
{
    public class ResourceManager : IResourceManager
    {
        public string GetError(string key)
        {
            return HttpContext.GetGlobalResourceObject("Errors", key).ToString();
        }

        //And so on........
    }
}

我不在web项目中,所以如果不从外部获取HttpContext,我就无法引用它。这是一个类库项目,对ASP.Net应用程序一无所知。但是您有一个对System.Web的引用,所以您应该仍然能够使用静态HttpContext,就像错误消息所指示的那样。它不起作用。尝试将我的代码复制到新的类库项目中并尝试构建…我刚刚创建了一个新的类库项目并将上面的代码粘贴到中。有一次我添加了对
System.Web
的引用,它的构建没有任何问题。当您尝试构建时,会出现什么错误?屏幕截图显示您没有使用我的答案中的代码,这就是为什么您仍然存在构建错误。