尝试使用 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);
}
阅读文档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);
}