我在Seemann的网站上看到了ASP.NET Web API依赖注入。它使用CastleWindsor。
request.RegisterForDispose(
new Release(
() => this.container.Release(controller)));
CastleWindsor的容器相当于LightInject中的容器吗?
http://blog.ploeh.dk/2012/10/03/DependencyInjectioninASP.NETWebAPIwithCastleWindsor/
答案 0 :(得分:2)
LightInject中没有真正的Release方法。使用PerScopeLifetime和PerRequestLifetime注册一次性服务。
这些服务在处理周围范围时处理。
container.Register<IFoo, DisposableFoo>(new PerScopeLifetime())
using(container.BeginScope())
{
var foo = container.GetInstance<IFoo>()
} -- foo is disposed here
LightInject.WebApi为Web Api提供集成,负责在Web请求结束时处理控制器。