类库

时间:2017-02-10 18:18:35

标签: 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
{
    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 Studio intellisense无法找到 GetGlobalResourceObject

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

运行构建后,我收到此错误消息:

无法使用实例引用访问成员'HttpContext.GetGlobalResourceObject(string,string)';使用类型名称对其进行限定

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

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

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

基本上你只使用静态HttpContext而不是创建它的实例。

using System.Web;

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

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