尝试使用 OWIN 在 ASP.NET MVC 站点中使用简单注入器

Trying to use Simple Injector in ASP.NET MVC site with OWIN

阅读文档here ..看似简单,实际操作起来却没那么简单

我遇到的一个问题是从设置 DI 的方法访问 IAppBuilder 接口。为此,我在 Startup class 上放置了一个 AppBuilder public static 属性,并希望在 DI 设置开始之前先对其进行初始化:

// DI setup code:
Startup.AppBuilder.Use((async (context, next) =>
{
    using (container.BeginExecutionContextScope())
    {
        await next();
    }
}));


[assembly: OwinStartupAttribute(typeof(MySite.Presentation.Startup))]
namespace MySite.Presentation
{
    public partial class Startup
    {
        public static IAppBuilder AppBuilder { get; private set; }

        public void Configuration(IAppBuilder app)
        {
            AppBuilder = app;

            ConfigureAuth(app);
        }
    }
}

但事实并非如此。 Startup.AppBuilder 在 DI 设置时为空。 我该如何解决这个问题?

我不知道我是否能以某种方式从 Startup class 中获取容器,但如果可能的话,将 DI 设置代码保存在一个地方会很好。

这样做:

public void Configuration(IAppBuilder app)
{
    app.Use((async (context, next) =>
    {
        using (container.BeginExecutionContextScope())
        {
            await next();
        }
    }));

    ConfigureAuth(app);
}