Data caching per request in Owin application

后端 未结 2 1451
-上瘾入骨i
-上瘾入骨i 2020-12-15 23:30

In traditional ASP.NET applications (that use System.Web), I\'m able to cache data in

HttpContext.Current.Items 

Now in Owin the HttpConte

2条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-16 00:24

    Finally I found OwinRequestScopeContext. Very simple to use.

    In the Startup class:

    app.UseRequestScopeContext();
    

    Then I can add per request cache like this:

    OwinRequestScopeContext.Current.Items["myclient"] = new Client();
    

    Then anywhere in my code I can do (just like HttpContext.Current):

    var currentClient = OwinRequestScopeContext.Current.Items["myclient"] as Client;
    

    Here is the source code if you're curious. It uses CallContext.LogicalGetData and LogicalSetData. Does any one see any problem with this approach of caching request data?

提交回复
热议问题