我正在为我未来的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)';使用类型名称对其进行限定
这是一种奇怪的行为,对我来说很有趣,为什么会这样。
感谢您的帮助
答案 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........
}
}