使用DI(结构图)在线程上使用HttpContext

时间:2013-10-15 08:59:43

标签: c# asp.net structuremap

我正在尝试使用Structuremap配置一个类,以便在线程上使用Current HttpContext。

我有这个班级

public class SiteContext
{
    public SiteContext(HttpContextBase context)
    {
        HttpContext = context;
    }

    public HttpContextBase HttpContext { get; private set; }
}

如果我在BootStrapper类中使用以下内容,系统将在尝试获取HttpContext.Current时抛出异常。 [HttpContext为null]

For<SiteContext>()
            .HybridHttpOrThreadLocalScoped()
            .Use(() => new SiteContext(new HttpContextWrapper(HttpContext.Current)));

然而,如果我使用以下内容,我可以获得HttpContext.Current,而会话的对象是null。

For<SiteContext>()
            .HttpContextScoped()
            .Use<SiteContext>()
            .Ctor<HttpContextBase>("context")
            .Is(new HttpContextWrapper(HttpContext.Current));

修改

For<HttpContextBase>()
            .HttpContextScoped()
            .Use(() => new HttpContextWrapper(HttpContext.Current));

有没有办法可以在线程上使用HttpContext.Current?

我将不胜感激。

由于

0 个答案:

没有答案