3

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

当您与 System.Web 分离时,您在 HttpContext 中使用什么作为静态访问器?

4

2 回答 2

2

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

于 2014-05-22T18:59:32.700 回答
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; }
    }
}
于 2015-05-13T10:39:10.343 回答