在没有System.Web的情况下使用OWIN时,使用什么代替HttpContext

时间:2014-05-22 18:09:27

标签: c# httpcontext owin nancy system.web

我们目前有一个NancyFx项目,我们已经使用OWIN连线了。我们没有使用System.Web,我们需要一些地方来放置我们的上下文,这些上下文用于除HttpContext之外的请求的生命周期。我们已经开始在线程静态变量上实现上下文,所以我们可以在应用程序的任何地方访问上下文,但是我们担心使用异步调用会丢失这个线程的静态上下文。

当你从System.Web离婚时,你在HttpContext的lue中用什么作为静态访问器?

2 个答案:

答案 0 :(得分:2)

您可以改用NancyContext。 NancyContext上的Items字典用于存储每个请求对象。 NancyContext在Nancy应用程序中的任何位置都可用。

答案 1 :(得分:1)

此主题可能会回答您的问题:https://groups.google.com/forum/#!topic/nancy-web-framework/yILM4ZMrsSQ

public class Bootstrapper : DefaultNancyBootstrapper
{
    protected override void ConfigureRequestContainer(
        TinyIoCContainer container, NancyContext context)
    {
        base.ConfigureRequestContainer(container, context);
        container.Register<ICurrentRequest>(
          (c, o) => new CurrentRequest(context));
    }

    private class CurrentRequest : ICurrentRequest
    {
        public CurrentRequest(NancyContext context)
        {
            this.Context = context;
        }

        public NancyContext Context { get; private set; }
    }
}