在我的globals.asax.cs中,我正在创建一个字典对象,我想在我的API中使用它来在应用程序的生命周期中添加和获取数据。 我做了以下事情:
Application["MyDictionary"] = myDictionary;
在我的ApiController中,我以这种方式处理它:
MyDictionary myDictionary= (MyDictionary)HttpContext.Current.Application["MyDictionary"];
到目前为止一直很好,问题是我需要在单元测试中做同样的事情,我需要将这个字典添加到我的应用程序中,所以当我调用我的控制器时,我将能够检索它,我怎么做 ? 这样做:
HttpContext.Current.Application.Add("MyDictionary", myDictionary);
enter code here
不起作用,我得到例外:
类型' System.NullReferenceException'的例外情况发生在RESTServices.Tests.dll但未在用户代码中处理
我的HttpContext.Current为空。
任何想法如何解决这个问题?
答案 0 :(得分:0)
收到请求时会创建HttpContext.Current
,因此您需要在使用之前设置Current属性。
请参阅以下示例:
var myDictionary = new Dictionary<string, string>();
HttpContext.Current = new HttpContext(new HttpRequest("default.aspx", "http://localhost", string.Empty), new HttpResponse(new StringWriter(CultureInfo.InvariantCulture)));
HttpContext.Current.Application.Add("MyDictionary", myDictionary);