0

我在 Seemann 的网站上看到了 ASP.NET Web API 依赖注入。它虽然使用 CastleWindsor。

request.RegisterForDispose(
            new Release(
                () => this.container.Release(controller)));

什么是 LightInject 中 CastleWindsor 的 container.Release 的等价物?

http://blog.ploeh.dk/2012/10/03/DependencyInjectioninASP.NETWebAPIwithCastleWindsor/

4

1 回答 1

2

LightInject 中并没有真正的 Release 方法。一次性服务在 PerScopeLifetime 和 PerRequestLifetime 中注册。

这些服务在周围 Scope 被释放时被释放。

container.Register<IFoo, DisposableFoo>(new PerScopeLifetime())

using(container.BeginScope())
{
    var foo = container.GetInstance<IFoo>()
} -- foo is disposed here

LightInject.WebApi 为 Web Api 提供了一个集成,它负责在 Web 请求结束时处理控制器。

于 2015-05-30T09:05:41.347 回答